通过字符串调用Drawable-Resource

时间:2011-06-30 19:20:55

标签: java android string resources

所以,让我先解释一下默认情况:用户可以选择一张图片 - 这张图片是通过属性文件中的字符串(例如“picture1”)保存的。现在我不想通过从属性文件中加载String并通过R.drawable.MYPICTURE从我的Drawables-Resources中获取Image来显示图片。

这就是我的成果:

    String iconsString[] = {"default", "icon"};
    int iconsResource[] = {R.drawable.default, R.drawable.icon};

    int iconResourcePosition;
    int iconsStringLength = iconsString.length;
    for (int i = 0; i < iconsStringLength; i++) {
        if (iconsString[i] == mProperties.getProperty("icon")) {
            iconResourcePosition = i;
        } else {
            iconResourcePosition = 0;
        }
    }
    btn_profileIcon.setBackgroundDrawable(iconsResource[iconResourcePosition]);

但它不起作用,因为“.setBackgroundDrawable”不接受int值。好吧,那就是我被困住的地方。我可以使“iconsResource []”使用“Drawable”而不是“int”,但这会引起另一个问题:|

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

毫米你不想做这样的事情:

btn_profileIcon.setBackgroundResource(iconsResource[iconResourcePosition]);

答案 1 :(得分:0)

使用BitmapFactory.decodeResource(...)存储可重复使用的Bitmap,然后在ImageView(或派生)上使用setImageBitmap(...)。