【问题标题】:Random TextView position随机 TextView 位置
【发布时间】:2012-11-13 11:23:16
【问题描述】:

我试图在屏幕上的随机位置显示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,以确保它保持不变。在大多数情况下它确实如此,但它似乎显示在屏幕外的某个地方。

【问题讨论】:

    标签: android android-layout random textview


    【解决方案1】:

    尝试更多地了解如何让随机数保持在最大宽度和高度之内,

    【讨论】:

    • 其实还是有一点帮助的,因为我忘了有个函数可以获取一个范围内的随机数。用它更新了我的 OP。
    【解决方案2】:

    你为什么不能这样做?

    您可以找到设备的 Max x 和 Max y 而不是这样做,然后根据条件您可以将 View 的位置设置为特定位置。

    另见:SO

    可能对你有帮助。

    如有任何疑问,请评论我。

    【讨论】:

    • 这和我在做什么有什么区别?
    【解决方案3】:

    但有时仍会显示在查看区域之外

    1. 您的活动顶部没有标题吗?这确实很重要......我不确定,但我认为通知栏也是......如果你在全屏模式下工作,你应该没有问题。

    2. 请记住,x y 坐标始终是对象视图的左上角!所以仍然可能发生你得到一半(或完整的情况下:D)你的图片/文本视图/屏幕外的任何东西......

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多