通过ID动态获取drawable

我想取一个byte并将其附加到资源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; } 

在我的Blackberry版本中,我只是:

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

有没有办法在Android上使用资源ID完成类似的事情?

Solutions Collecting From Web of "通过ID动态获取drawable"

从你的Context (例如, Activity )使用getResources().getIdentifier() ,但是如果你多次使用它,请缓存结果。 getIdentifier()Resources上实现。

例如:

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

将返回R.drawable.fooN的值,其中Nindex给出的数字。

有关更多信息,请参阅此内容以及此内容 。