为了账号安全,请及时绑定邮箱和手机立即绑定

如何用随机图像填充 gridLayout 8x8

如何用随机图像填充 gridLayout 8x8

千巷猫影 2022-10-26 16:54:02
我正在开发一种“糖果粉碎”,我需要的是当你打开应用程序时,元素(宝石)是随机生成的。在 xml 中,我创建了一个 8x8 的“GridLayout”,它将存储 6 个 ImageView,其中每个 ImageView 都是一个 gem。我正在考虑做的是从 .java 以某种方式通过 8x8 矩阵,我将元素随机加载到我的 GridLayout 中。但我就是不知道该怎么做。如果你帮助我,我将不胜感激,我已经被困在这两天了。谢谢。public class MainActivity extends AppCompatActivity {private int [] vector = new int[]{R.drawable.blue, R.drawable.green,R.drawable.yellow,R.drawable.red,R.drawable.purple,R.drawable.orange};private int num=6;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    int matriz[][] = new int[8][8];    GridLayout grid = (GridLayout) findViewById(R.id.grid);    int numOfCol = grid.getColumnCount();    int numOfRow =  grid.getRowCount();    for (int x = 0; x <= numOfCol; x++) {        for (int y = 0; y <= numOfRow; y++) {            int numero = (int) (Math.random() * num) + 1;            grid.addView(grid, matriz[x][y]);        }    }<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_height="fill_parent"android:layout_width="fill_parent"android:columnCount="8"android:rowCount="8"android:orientation="horizontal"android:background="#053b13"android:id="@+id/grid"><ImageView    android:id="@+id/blue"    android:src="@drawable/blue"    android:layout_width="70dp"    android:layout_height="44dp"    android:onClick="gemas"></ImageView><ImageView    android:id="@+id/green"    android:src="@drawable/green"    android:layout_width="70dp"    android:layout_height="44dp"    android:onClick="gemas"></ImageView><ImageView    android:id="@+id/orange"    android:src="@drawable/orange"    android:layout_width="70dp"    android:layout_height="44dp"    android:onClick="gemas"></ImageView><ImageView    android:id="@+id/purple"    android:src="@drawable/purple"    android:layout_width="70dp"    android:layout_height="44dp"    android:onClick="gemas"></ImageView>
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

Java 代码


Random rnd = new Random();

for(int c=0; i<grid.getChildCount();i++){

    int bg = vector[ rnd.nextInt(vector.length) ];


    grid.getChildAt(c).setBackgroundResource(bg);

}

注意:我是用 Kotlin 编写的,Java 代码来自内存。如果您发现错误,请发表评论。


科特林代码:


val vector = intArrayOf(

        R.mipmap.ic_launcher,

        R.mipmap.ic_launcher_round

)


for (c in 0 until grid.childCount) {


    grid.getChildAt(c).backgroundResource = vector[Random.nextInt(vector.size)]


}

结果

//img1.sycdn.imooc.com//6358f5cf00015b4704000285.jpg

查看完整回答
反对 回复 2022-10-26
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信