我有一个小纸牌游戏。在 ArrayList 中,我添加了 52 张卡片:
ArrayList<String> liste = new ArrayList<String>();
并用以下内容填充它:
for (int n=1; n<14; n++) {
liste.add("d" +n); //diamonds
liste.add("c" +n); //clubs
liste.add("s" +n); //spades
liste.add("h" +n); //hearts
}
要抽牌,我使用以下代码:
private void drawCard() {
if (liste.size()!=0) {
Collections.shuffle(liste);
kort.setText("" + liste.get(0));
int i = liste.size();
cardsLeft.setText("" + (i - 1));
cardImage.setImageResource(R.drawable.XXX);
liste.remove(0);
}
else kort.setText("No more cards in deck");
}
在我的可绘制文件夹中,有 52 张卡片图片,其名称与 ArrayList 中的名称相同。 当程序绘制时,例如。 d2 我还需要将 ImageView cardImage 设置为可绘制文件夹中的图像 d2:
cardImage.setImageResource(R.drawable.d2);
需要帮助我如何更改 ImageView 以匹配绘制的卡片
最佳答案
你可以这样做:
public static int getDrawableId(Context ctx, String name) {
return ctx.getResources().getIdentifier(name, "drawable", ctx.getPackageName());
}
cardImage.setImageResource(getDrawableId(YourActivity.this, "d2"));
关于Java 设置图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36609101/