如何通过将字符串值与图像名称匹配来选择可绘制图像?

时间:2013-05-04 21:48:06

标签: android android-resources

我有一个字符串的arraylist,我需要随机选择一个索引,如果字符串值是 “熊”,然后将按钮的背景设置为bear.jpg。

好的,我的研究显示资源是通过int id访问的,而不是他们的名字,我不确定实现我想做的最好的方法。这是我的代码:

    list.add("alligator");
    list.add("bear");
    list.add("beaver");
    list.add("bison");

    randomInt = randomGenerator.nextInt(list.size());
    b1.setBackgroundResource(R.drawable.list.get(randomInt));

当然,代码的最后一行是错误的,我写了它来展示我想要实现的目标。我最近的尝试是尝试获取资源ID并以这种方式访问​​资源,但我不知道这是否是这样做的方式,如果是,我没有使用正确的代码。我正在努力做到这一点,但我可以使用一些建议来做什么。这是我的尝试:

         String mDrawableName = "bear";
         int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());

        String s= Integer.toString(resID);

2 个答案:

答案 0 :(得分:4)

使用以下代码

int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());    
b1.setBackgroundResource(resID);

答案 1 :(得分:1)

试试这个:

list.add("alligator");
list.add("bear");
list.add("beaver");
list.add("bison");

randomInt = randomGenerator.nextInt(list.size());

int resourceId = getResources().getIdentifier(list.get(randomInt), "drawable", getPackageName());
b1.setBackgroundResource(resourceId);