我正在开发一种“糖果粉碎”,我需要的是当你打开应用程序时,元素(宝石)是随机生成的。在 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)]
}
结果
添加回答
举报
0/150
提交
取消