我有4个随机设置的图像,但当我测试出来,结果显示相同的图片。我希望每个图像视图显示与其他图像不同的图像。
这是我的密码:
final ImageButton imageButton=(ImageButton) findViewById(R.id.imageView);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imageButton.setVisibility(View.INVISIBLE);
pic1 = (ImageView) findViewById(R.id.imageView2);
pic2 = (ImageView) findViewById(R.id.imageView3);
pic3 = (ImageView) findViewById(R.id.imageView4);
pic4 = (ImageView) findViewById(R.id.imageView5);
Random rand = new Random();
int rndInt = rand.nextInt(4) + 1;
String imgName = "img" + rndInt;
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
pic1.setImageResource(id);
pic2.setImageResource(id);
pic3.setImageResource(id);
pic4.setImageResource(id);
}
});
发布于 2015-09-28 20:54:42
这是我的回答,其他的时间只显示了4个不同的图像。我的解决方案提供,这些图像是随机的,不完全相同:
final ImageButton imageButton=(ImageButton) findViewById(R.id.imageView);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imageButton.setVisibility(View.INVISIBLE);
pic1 = (ImageView) findViewById(R.id.imageView2);
pic2 = (ImageView) findViewById(R.id.imageView3);
pic3 = (ImageView) findViewById(R.id.imageView4);
pic4 = (ImageView) findViewById(R.id.imageView5);
ArrayList<Integer> imageIds= new ArrayList<>(Arrays.asList(1, 2, 3, 4))
Collections.shuffle(imageIds);
pic1.setImageResource(getResources().getIdentifier("img" + imageIds[0], "drawable", getPackageName()));
pic2.setImageResource(getResources().getIdentifier("img" + imageIds[1], "drawable", getPackageName()));
pic3.setImageResource(getResources().getIdentifier("img" + imageIds[2], "drawable", getPackageName()));
pic4.setImageResource(getResources().getIdentifier("img" + imageIds[3], "drawable", getPackageName()));
}
});
同样,您也不必更改大量代码才能使其工作;)对不起,我将所有内容都打包在一行中。但是我真的很累,因为在德国已经快午夜了。
https://stackoverflow.com/questions/32831092
复制相似问题