画面上のランダムな位置にa を表示しようとしてTextView
いますが、テキストが画面の外にはみ出してはいけません。テキストは常に短く、3 語以内にします。これは私がこれまでに持っているものです:
final TextView tv = ((TextView)findViewById(R.id.text);
final Random rand = new Random();
final DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = rand.nextInt(metrics.widthPixels);
int height = rand.nextInt(metrics.heightPixels);
final FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
flp.setMargins(width, height, 0, 0);
tv.setLayoutParams(flp);
アップデート:
忘れていましたが、範囲内の乱数を取得するためにこの関数がありました:
public static int Random(final int lower, final int uppper)
{
return lower + (int)(Math.random() * ((uppper - lower) + 1));
}
そこで、コードを次のように更新しました。
int width = Random(0, metrics.widthPixels);
int height = Random(0, metrics.heightPixels);
ただし、表示領域の外に表示されることがあります。各値から 10 を差し引いて、確実に表示されるようにしました。ほとんどの場合は表示されますが、画面の外のどこかに表示されているように見えます。