3

这是我正在尝试做的事情:

假设我有一个图像,一个球或其他东西。我想在屏幕上的随机点显示此图像,并且用户应该单击它们。

使用 API 11+,我会使用这个:

TextView ttvv = (TextView) findViewById(R.id.tt);
ttvv.setY(__ A random float__);
ttvv.setX(__ A random float__);

我会得到屏幕尺寸,如下所示:

Random rnd = new Random();
float Y = rnd.nextFloat(ScreenHeight);
float X = rnd.nextFloat(ScreenWidth);

所以图像会在随机位置弹出,我显然可以根据需要使其显示/可见。

但以上仅对 API 11+ 有效。

我需要为 API 8 执行此操作,并且我无法找到相同的相同功能(或关于 SO 本身的类似问题)。

API 8 中是否有这些功能的等价物?

4

2 回答 2

0

使用下一个代码来改变视图的位置,改变左边距和上边距。

    LayoutParams params = (LayoutParams)yourView.getLayoutParams();
    params.leftMargin = x;
    params.topMargin = y;
    yourView.setLayoutParams(params);

您的视图必须位于左上角的 RelativeLayout 中,如下所示:

<View
    android:id="@+id/your_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"/>

注意: x 和 y 将是视图左上角的坐标。

于 2013-09-20T13:38:39.420 回答
0

如果您愿意,它有点不同但更直接。

首先,您必须占据要显示图像或文本的空间。使用 SurfaceView 或 ImageView 执行此操作。您将您自己的可绘制对象放置在其中,您可以在其中覆盖该paint()方法。在paint 方法中,您将获得一个Canvas 对象,您可以在其中绘制文本、位图或任何形状。您可以将其放置在您喜欢的画布中。

如果你有兴趣,我可以给你看一些示例代码。它只需要一些,直到我回到我的办公桌上。所以让我知道你是否感兴趣。

于 2013-09-20T13:32:31.223 回答