在运行时在相对布局内的随机位置添加图像

时间:2017-07-31 13:30:18

标签: android relativelayout

请告诉我如何在相对布局中添加图片或按钮等视图。但在随机位置上,最大图像数可以是10。

请帮帮我。我附上了一个关于我想要最终输出的视图。

enter image description here

此致 阿米特夏尔马

1 个答案:

答案 0 :(得分:2)

在这种情况下,您应该考虑AbsoluteLayout,这会更有意义。由于这种方式,您可以为每个孩子随机生成xy位置。

网上有大量的例子,here是Google搜索发现的第一个例子。要点是这样的:

在屏幕上绘制类似的内容:

AbsoluteLayout

您可以在活动AbsoluteLayout文件中声明xml这样的内容:



<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
   
<!--  Declare your shapes --> 

</AbsoluteLayout>
&#13;
&#13;
&#13;

然后在ActivityFragment中,您将在随机位置添加Shape个对象,例如:

&#13;
&#13;
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);
  // ...
 }  
}
&#13;
&#13;
&#13;