如何让随机图像显示不重复?
How can I get the random images displaying to not repeat?
我正在使用 Android Studio 制作通用应用程序;我想显示阵列中的 4 个随机图像,但不知道如何防止图像重复。
public class answerScreen extends AppCompatActivity {
ImageView imageView, imageView2, imageView3, imageView4;
Random r;
Integer[] images = {
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6,
R.drawable.img7
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_answer_screen);
imageView = (ImageView) findViewById(R.id.imageView);
imageView2 = (ImageView) findViewById(R.id.imageView2);
imageView3 = (ImageView) findViewById(R.id.imageView3);
imageView4 = (ImageView) findViewById(R.id.imageView4);
r = new Random();
//diplay random image
imageView.setImageResource(images[r.nextInt(images.length)]);
imageView2.setImageResource(images[r.nextInt(images.length)]);
imageView3.setImageResource(images[r.nextInt(images.length)]);
imageView4.setImageResource(images[r.nextInt(images.length)]);
}
}
打乱数组然后获取前四项是执行此操作的简单方法。
一个简单的例子:
Integer[] intArray = { 1, 2, 3, 4, 5, 6, 7 };
List<Integer> intList = Arrays.asList(intArray);
Collections.shuffle(intList);
intList.toArray(intArray);
System.out.println(Arrays.toString(intArray));
您可以在 [0,images.length)
范围内生成 4 个随机整数并将它们存储在数组中,例如:
Random r = new Random();
int randInts [] = r.ints(0, images.length).distinct().limit(4).toArray();
并使用该数组设置图像资源:
imageView.setImageResource(images[randInts[0]]);
imageView2.setImageResource(images[randInts[1]]);
imageView3.setImageResource(images[randInts[2]]);
imageView4.setImageResource(images[randInts[3]]);
我正在使用 Android Studio 制作通用应用程序;我想显示阵列中的 4 个随机图像,但不知道如何防止图像重复。
public class answerScreen extends AppCompatActivity {
ImageView imageView, imageView2, imageView3, imageView4;
Random r;
Integer[] images = {
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6,
R.drawable.img7
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_answer_screen);
imageView = (ImageView) findViewById(R.id.imageView);
imageView2 = (ImageView) findViewById(R.id.imageView2);
imageView3 = (ImageView) findViewById(R.id.imageView3);
imageView4 = (ImageView) findViewById(R.id.imageView4);
r = new Random();
//diplay random image
imageView.setImageResource(images[r.nextInt(images.length)]);
imageView2.setImageResource(images[r.nextInt(images.length)]);
imageView3.setImageResource(images[r.nextInt(images.length)]);
imageView4.setImageResource(images[r.nextInt(images.length)]);
}
}
打乱数组然后获取前四项是执行此操作的简单方法。 一个简单的例子:
Integer[] intArray = { 1, 2, 3, 4, 5, 6, 7 };
List<Integer> intList = Arrays.asList(intArray);
Collections.shuffle(intList);
intList.toArray(intArray);
System.out.println(Arrays.toString(intArray));
您可以在 [0,images.length)
范围内生成 4 个随机整数并将它们存储在数组中,例如:
Random r = new Random();
int randInts [] = r.ints(0, images.length).distinct().limit(4).toArray();
并使用该数组设置图像资源:
imageView.setImageResource(images[randInts[0]]);
imageView2.setImageResource(images[randInts[1]]);
imageView3.setImageResource(images[randInts[2]]);
imageView4.setImageResource(images[randInts[3]]);