通过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完成类似的事情?

  • Android Studio中包含库的NoClassDefFoundError
  • 将AlertDialog显示为Service中的系统覆盖窗口
  • android:如何删除操作栏中的后退/主页按钮
  • 如何在android中固定的时间后重复任务?
  • 适用于本机库的Android AAR包
  • wrap_content在按钮高度android中不起作用
  • 房间持久性:错误:实体和Pojos必须具有可用的公共构造函数
  • 您上传了一个非zip对齐错误的APK
  • 从你的Context (例如, Activity )使用getResources().getIdentifier() ,但是如果你多次使用它,请缓存结果。 getIdentifier()Resources上实现。

    例如:

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

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

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