Java 设置图像资源

标签 java android

我有一个小纸牌游戏。在 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/

相关文章:

java - stringbuilder 可以容纳的最大字符数

android - 警告 : API 'variant.getMergeAssets()' is obsolete/Android Studio 3. 3

机器人 : media player - pause called in state 8

java - 如何获取以月和日为单位的日期

java - 使用反射来了解字段和相对值

android - 在 Eclipse 中,是否可以在使用 Android New Activity 向导时使用支持库

java - 使用自定义比较器会导致排序不一致

java - 无法在 Java 中引用可绘制的 PNG?

Java - 屏幕截图窗口在可运行的 jar 文件中不起作用

java - 我是否需要使用 volatile,如果 2 个不同的写入和读取线程永远不会同时存在