安卓随机资源

3
String rank[] = {"tclub1.png", "tclub2.png", "tclub3.png", "tclub4.png",
  "tclub5.png", "tclub6.png", "tclub7.png", "tclub8.png", "tclub9.png",
  "tclub10.png", "tclub11.png", "tclub12.png", "tclub13.png"};

Random randInt = new Random();
int b = randInt.nextInt(rank.length);
String d = ("tclub" + b + ".png");
Log.v(LOG_TAG, "in value:=" + d);

以下是代码。 实际上,我的数组会给我一个在(0到12之间的)随机索引..然后我将其添加以构成图像名称。例如(tclub1.png) 现在它给我的图像名称是字符串格式。 现在如何随机分配这个图像呢?

重复的问题:https://dev59.com/AU_Sa4cB1Zd3GeqP-0b2 - fadden
2个回答

1
如果你想将图片加载到ImageView中,可以这样做:
String imgName = "tclub1"; // the image you want to load
int id = getResources().getIdentifier(imgName, "drawable", getPackageName());  
imageView.setImageResource(id); 

嗨Itsik, 谢谢,但是这个问题还没有解决。 当我使用日志标签来查看ID的值时,它显示为0,并且图片也没有随机设置。 - vivek_Android
1
所有的图片都在res/drawable目录下吗?此外,图片名称应该不带“.png”后缀。(只需要资源名称) - Itsik
非常感谢您的建议,我已经完成了。愿上帝保佑您。 - vivek_Android

0

查找控件:

ImageView image = (ImageView) findViewById(R.id.rockId);

我使用这个辅助函数来动态加载drawable中的图像:

public static int getDrawable(Context context, String name)
{
    Assert.assertNotNull(context);
    Assert.assertNotNull(name);

    return context.getResources().getIdentifier(name,
            "drawable", context.getPackageName());
}

这将返回您的可绘制对象的ID,现在您需要做的就是在控件中设置图像:

image.setImageResource(int Id);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接