我正试图在屏幕上的随机位置显示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,以确保它保持不变。大多数情况下,它确实如此,但它似乎显示在屏幕外的某个地方。
答案 0 :(得分:0)
尝试更多地了解如何让随机数保持在最大宽度和高度之内,
答案 1 :(得分:0)
答案 2 :(得分:0)
但它有时仍显示在观看区域之外
你的活动没有头衔吗?这确实算上......我不确定,但我认为通知栏也是如此......如果你在全屏模式下工作,你就不应该有问题。
请记住,x y坐标始终是对象视图的左上角!因此,你的图片/文本视图/屏幕之外的任何内容都会得到一半(或完整的情况:D)......