在 运行 时间在相对布局内的随机位置添加图像
Add images in random positions inside a relative layout at run time
请告诉我如何在相关布局中添加图像或按钮等视图。但是在随机位置上,图像的最大数量可以是 10.
请帮帮我。我附上了我想要最终输出的视图。
问候
阿米特夏尔马
在这种情况下,您应该考虑 AbsoluteLayout,这样会更有意义。因为这样你可以随机生成 x
和每个 child 的 y
位置。
网上有很多例子,here 是Google 搜索找到的第一个。要点是这样的:
要在屏幕上绘制这样的东西:
您可以在 activity xml
文件中声明这样的 AbsoluteLayout
:
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Declare your shapes -->
</AbsoluteLayout>
然后在 Activity
或 Fragment
中,您将在随机位置添加 Shape
objects,例如:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ...
// Establish the working area
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int widthArea = displayMetrics.widthPixels;
int heightArea = displayMetrics.heightPixels;
//Init the random generator
Random r = new Random();
// Then for each Shape
// ...
AbsoluteLayout.LayoutParams pos =
(AbsoluteLayout.LayoutParams)shape.getLayoutParams();
pos.x = r.nextInt(widthArea);
pos.y = r.nextInt(heightArea);
shape.setLayoutParams(pos);
// ...
}
}
请告诉我如何在相关布局中添加图像或按钮等视图。但是在随机位置上,图像的最大数量可以是 10.
请帮帮我。我附上了我想要最终输出的视图。
问候 阿米特夏尔马
在这种情况下,您应该考虑 AbsoluteLayout,这样会更有意义。因为这样你可以随机生成 x
和每个 child 的 y
位置。
网上有很多例子,here 是Google 搜索找到的第一个。要点是这样的:
要在屏幕上绘制这样的东西:
您可以在 activity xml
文件中声明这样的 AbsoluteLayout
:
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Declare your shapes -->
</AbsoluteLayout>
然后在 Activity
或 Fragment
中,您将在随机位置添加 Shape
objects,例如:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ...
// Establish the working area
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int widthArea = displayMetrics.widthPixels;
int heightArea = displayMetrics.heightPixels;
//Init the random generator
Random r = new Random();
// Then for each Shape
// ...
AbsoluteLayout.LayoutParams pos =
(AbsoluteLayout.LayoutParams)shape.getLayoutParams();
pos.x = r.nextInt(widthArea);
pos.y = r.nextInt(heightArea);
shape.setLayoutParams(pos);
// ...
}
}