java – 通过ID动态获取可绘制的

我想要一个字节,并将其附加到资源ID,以便能够获得与游戏中编号甲板相对应的图像。很容易在其他设备上使用路径,但是使用资源ID,我不确定该怎么做。

这是我现在所在:

switch(GameSettings.gameDeck)
    {
    case 1:
        deckImage.setBackgroundResource(R.drawable.deck1);
        break;
    case 2:
        deckImage.setBackgroundResource(R.drawable.deck2);
        break;
    case 3:
        deckImage.setBackgroundResource(R.drawable.deck3);
        break;
    case 4:
        deckImage.setBackgroundResource(R.drawable.deck4);
        break;
    }

在我的黑莓版本中,我只是:

deckImage.setBitmap(Bitmap.getBitmapResource("/path/deck" + GameSettings.gameDeck + ".png"));

有没有办法使用Android上的资源ID来完成类似的操作?

从您的上下文(例如Activity)中使用getResources()。getIdentifier(),但如果您不止一次使用,请缓存结果。资源中实现了getIdentifier()。

例如:

int drawableId=getResources().getIdentifier("foo"+index, "drawable", getPackageName());

将返回R.drawable.fooN的值,其中N是由索引给出的数字。

更多信息,请参见thisthisthis

http://stackoverflow.com/questions/2414134/dynamically-get-drawables-by-id

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 通过ID动态获取可绘制的