猿问

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

我正在开发一种“糖果粉碎”,我需要的是当你打开应用程序时,元素(宝石)是随机生成的。在 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;



@Override

protected 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>


千巷猫影
浏览 71回答 1
1回答

心有法竹

Java 代码Random rnd = new Random();for(int c=0; i<grid.getChildCount();i++){&nbsp; &nbsp; int bg = vector[ rnd.nextInt(vector.length) ];&nbsp; &nbsp; grid.getChildAt(c).setBackgroundResource(bg);}注意:我是用 Kotlin 编写的,Java 代码来自内存。如果您发现错误,请发表评论。科特林代码:val vector = intArrayOf(&nbsp; &nbsp; &nbsp; &nbsp; R.mipmap.ic_launcher,&nbsp; &nbsp; &nbsp; &nbsp; R.mipmap.ic_launcher_round)for (c in 0 until grid.childCount) {&nbsp; &nbsp; grid.getChildAt(c).backgroundResource = vector[Random.nextInt(vector.size)]}结果
随时随地看视频慕课网APP

相关分类

Java
我要回答