【问题标题】:Add images in random positions inside a relative layout at run time在运行时在相对布局内的随机位置添加图像
【发布时间】:2018-01-07 02:40:32
【问题描述】:

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

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

问候 阿米特·夏尔马

【问题讨论】:

  • 你好阿米特你可以试试这个。 stackoverflow.com/questions/22144690/…
  • 您好 Deepak,感谢您的回答,但我需要在一个布局内我已经尝试过,但它对我没有帮助,谢谢您的帮助

标签: android android-relativelayout


【解决方案1】:

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

网络上有大量示例,here 是通过 Google 搜索找到的第一个示例。要点是这样的:

在屏幕上绘制这样的东西:

您可以在您的活动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>

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

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

【讨论】:

  • 谢谢先生,您有任何工作示例或代码块,以便我可以处理。
  • 嗨@AmitSharma,我用更多细节更新了我的答案,希望对您有所帮助。
  • 谢谢先生让我检查一下,形状变量是绝对布局吗?
  • 抱歉,shape 是我们要添加的视图,我说对了吗?
  • @AmitSharma 不知道你的意思是什么:“形状变量是绝对布局”,但如果你问整形器是否在xml中声明,这是一种选择,你可以在Activity 中以编程方式声明它们并使用addView(shape, pos); 方法在运行时添加它们。
猜你喜欢
  • 1970-01-01
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多