使用变量的可绘制资源

Ale*_*lex 17 android

我想使用变量而不是R.drawable.myimage,因为我有一个带有图像名称的数据库.我从数据库中获取名称,并且我想使用具有此名称的drawable资源.

String flagimage = "R.drawable." + myHelper.getFlagImage(5);
int resourceId = Integer.parseInt(flagimage);
Bitmap flag = BitmapFactory.decodeResource(getResources(), resourceId);
Run Code Online (Sandbox Code Playgroud)

ble*_*enm 39

您可以使用类似资源的名称

getIdentifier (String name, String defType, String defPackage);

getResources().getIdentifier("us","drawable","com.app");
Run Code Online (Sandbox Code Playgroud)

上面的函数将返回一个与R.drawable.us相同的整数值.

这是您使用资源名称访问的方式.

  • 只需快速说明[getIdentifier](http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier%28java.lang.String,%20java.lang.String,%20java.lang.如果没有找到这样的资源,字符串%29)返回"0".(0不是有效的资源ID.) (2认同)

mAn*_*oid 17

您可以使用此代码获取标识符......

 Resources res = this.getResources(); 
 int resID = res.getIdentifier(imagename, "drawable", this.getPackageName());
Run Code Online (Sandbox Code Playgroud)