gpt4 book ai didi

java - Android:循环从ArrayList中选择随机图像

转载 作者:行者123 更新时间:2023-12-01 13:48:12 25 4
gpt4 key购买 nike

现在我的程序随机显示数组列表中的 5 个随机图像,这是我现在拥有的主要部分:

int myImgCount;
int totalImgCount;
int[] array1;

public void surfaceCreated(SurfaceHolder holder) {

ArrayList<Integer> list = new ArrayList<Integer>();

Random r = new Random();

int[] images = new int[] { R.drawable.one, R.drawable.two,
R.drawable.three, R.drawable.four, R.drawable.five };

int totalImgCount = 0;


for (int i = 0; i<50; i++)
{
while (true)
{
int myImgCount = r.nextInt(5);

totalImgCount += myImgCount + 1;

if (totalImgCount<50) {

list.add(images[myImgCount]); //do it again if not yet at 50
break;
}
totalImgCount -= (myImgCount + 1);
}


}

array1 = convertIntegers(list);

}

public static int[] convertIntegers(List<Integer> integers) {
int[] ret = new int[integers.size()];
Iterator<Integer> iterator = integers.iterator();
for (int i = 0; i < ret.length; i++) {
ret[i] = iterator.next().intValue();
}
return ret;
}

我现在在此处的渲染方法中遇到错误,导致应用程序崩溃:

public void render(Canvas canvas) {

if (canvas != null) {

Log.d(TAG, "Start Random");
Random random = new Random();
canvas.drawRGB(234, 237, 235);

for (int i=0; i<5; i++) {
Bitmap bmp = BitmapFactory.decodeResource(getResources(), array1[i]);
// ^This is where I am now getting an error that is causing the app to crash

canvas.drawBitmap(bmp,random.nextInt(canvas.getWidth()-bmp.getWidth
()), random.nextInt(canvas.getHeight()-bmp.getHeight()),null);

}

}
}

我想做的是让每个可绘制图像都有一个整数值,例如:R.drawable.one等于1,R.drawable.two等于2.....R.drawable. Five等于至 5。

并重复循环,直到显示的图像等于 50 的总值(它们的总和为 50),然后停止。

我试图让 myImgCount 和totalImgCount 来跟踪随机选择的图像的值,我知道这是不对的,但我找不到有关如何完成此任务的任何信息。预先感谢任何可以提供帮助的人,我是编码新手,因此如果您能解释为什么使用代码,那将会有更多帮助!谢谢!

最佳答案

您可以使用可绘制的命名约定,如 R.drawable.image1、R.drawable.image2 并使用

for(int i=0;i<50;i++) {
a[i] = getResources().getIdentifier("image"+(i+1), "drawable", getPackageName());
}

有关 getIdentifier 方法的详细信息 here :

希望这有帮助

关于java - Android:循环从ArrayList中选择随机图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20182492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com