通过IDdynamic获取drawables

我想占用一个byte并将其附加到资源ID,以便能够获得与游戏中编号的牌组相对应的图像。 在其他设备上使用path很容易,但对于资源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完成类似的东西?

Solutions Collecting From Web of "通过IDdynamic获取drawables"

使用getResources().getIdentifier()从你的Context (例如, Activity ),但请caching结果,如果你将使用它不止一次。 getIdentifier()Resources上实现。

例如:

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

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

欲了解更多,请参阅此和这个和这个 。