Android 可提取参考文献

Android 可提取参考文献,android,imageview,drawable,Android,Imageview,Drawable,我的应用程序中没有几个图像(它们都被复制到res/drawable中,并具有适当的R.drawable引用),我希望使用字符串类型变量的内容将它们分配给ImageView。如图所示,在我的drawable文件夹中有一个名为“c4.png”的图像文件和一个包含“c4”的字符串变量(card)。我想看看是否有任何方法可以使用这样的代码(ImageView1.setImageResource(R.drawable.card))将图像c4分配给我的ImageView1,而不是使用ImageView1.s

我的应用程序中没有几个图像(它们都被复制到res/drawable中,并具有适当的R.drawable引用),我希望使用字符串类型变量的内容将它们分配给ImageView。如图所示,在我的drawable文件夹中有一个名为“c4.png”的图像文件和一个包含“c4”的字符串变量(card)。我想看看是否有任何方法可以使用这样的代码(ImageView1.setImageResource(R.drawable.card))将图像c4分配给我的ImageView1,而不是使用ImageView1.setImageResource(R.drawable.c4)。基本上,我想知道是否可以在R.drawable.resourceName中用特定的图像名称替换变量。我知道R.drawable.resourceName是一个整数,我不想改变它的类型。我想用变量替换resourceName。谢谢你的帮助

我想用变量替换resourceName

与其将变量卡声明为字符串,不如将其声明为整数。这样您就可以像下面那样使用它

int card=R.drawable.c4;
ImageView1.setImageResource(card);
您可能无法执行类似R.drawable.card的操作,因为R文件是根据drawable文件夹中的资源生成的。
希望这有助于

使用它在特定范围内绘制一个随机数-

int min = 0;
int max = 9;

Random r = new Random();
int i1 = r.nextInt(max - min + 1) + min;
然后使用此数字从图像数组中拾取图像-

public Integer[] nImages = {
                R.drawable.c1, R.drawable.c2,
                R.drawable.c3, R.drawable.c4,
                R.drawable.c5, R.drawable.c6,
                R.drawable.c7, R.drawable.c8,
                R.drawable.c9, R.drawable.c10
    };

ImageView1.setBackgroundResource(nImages [i1]);
希望能奏效。

试试这个

Resources res = getResources();

int id = res.getIdentifier(card, "drawable", getPackageName());
img.setImageResource(id);

这可能会解决您的问题。

或者您可以将图像放在资产文件夹中。资产由其文件名引用,如中所示

getAssets().open(<filename>);
然后将该位图用于ImageView。这应该是直截了当的

imageView.setImageBitmap(bitmap);

我知道如何将图像分组到数组中,然后使用该数组设置图像资源。但我不明白你们为什么要更改图像的名称。@mussharapp这是一个纸牌游戏,一张牌被随机挑选和显示。我有一个方法,可以生成一个随机字符串,比如c4,它引用了一个卡片图像(假设我有10个从c1到c10的图像),该方法将随机选择一个,并将其作为字符串“c4”返回。现在,我想使用这个字符串“c4”,它与我的可提取资源名称相同,以更新我UI上的卡映像。@KanwaljitSingh我没有更改映像的名称。名字完全一样。我只想使用一个包含图像名称的变量,而不是图像直接名称,这样该变量就可以采用我在drawable中拥有的任何其他图像名称。我提供了更多的信息来回应最后的评论。当我使用ImageView1.setImageResource(R.drawable.c4)时,它会用c4图像更新我的UI,但我不能使用ImageView1.setImageResource(R.drawable.card),因为card是一个包含值“c4”的变量。确定。我认为你必须随机选择一个数字而不是字符串。使用这个数字,您可以从图像数组中选取图像。作为参数转到setImageResource的整数应该引用资源的确切值,因为它在R.java中表示。我可以改变我的方法为卡片提供一个整数,但它不会是类R中存在的相同值。
imageView.setImageBitmap(bitmap);