gpt4 book ai didi

java - 以编程方式将随机图像设置为 ImageButton

转载 作者:行者123 更新时间:2023-11-29 05:45:27 25 4
gpt4 key购买 nike

我试图随机选择我的 ImageButton 使用的图片。

我认为这段代码应该可以工作,但是当将资源作为 String 传递时似乎有问题。

    ImageButton getClickTime = (ImageButton) findViewById(R.id.clicker);

Random generator = new Random();
int generatedRandom = generator.nextInt(10) + 1;
String randomImage = "R.drawable.bg" + (String.valueOf(generatedRandom)) ;
Drawable replaceImage = getResources().getDrawable((int) randomImage);

getClickTime.setImageDrawable((Drawable) replaceImage);

我似乎对 intStringdrawable 的转换有点乱CharSequences。

如果我手动输入随机选择的图像资源,它就可以工作。但是,如果我将 String 传递给文本框,我可以看到它的编写方式与我手动输入时完全相同。

谁能看出我在这里做错了什么?

提前致谢

最佳答案

您的问题是您误解了 Android 如何使用资源 ID。 R 文件包含映射到应用中所含资源的 int id。您正在尝试通过将其 String 引用转换为 int 来引用 drawable 资源。这是不可能的,也没有意义。

我建议您创建一个 int[],其中包含您要随机选择的所有 drawable 的 ID。

    int[] imageIds = { 
R.drawable.bg1,
R.drawable.bg2,
R.drawable.bg3,
R.drawable.bg4,
R.drawable.bg5
// etc for as many images you have
};

然后,随机选择其中一个 drawable id 并将其设置为 ImageButton

    ImageButton getClickTime = (ImageButton) findViewById(R.id.clicker);
Random generator = new Random();
int randomImageId = imageIds[generator.nextInt(imageIds.length)];
getClickTime.setImageResource(randomImageId);

关于java - 以编程方式将随机图像设置为 ImageButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003860/

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