我在res/drawable文件夹中有我的图像,没有问题.问题是,我希望能够做到这样的事情:
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.*img[contar]*);
Run Code Online (Sandbox Code Playgroud)
换句话说,eclipse不允许我这样做img[contar]它只接受图像文件的特定名称(例如:crystalblue),我想让我们说从"crystalblue"转移到"crystalred"图像,在我的情况下我需要一个变量来做到这一点.
Obs:我确实将img声明为字符串数组.
任何解决方案?
你不能将变量名的一半与运行时数据连接起来.编译器无法判断您实际尝试传递的变量.
你要做的是这样的事情:
int resourceId = 0;
if(someCondition){
resourceId = R.drawable.someimage;
}else{
//other logic for picking the right image here
}
mBitmap = BitmapFactory.decodeResource(getResources(), resourceId);
Run Code Online (Sandbox Code Playgroud)
您还可以使用反射来查找R类中具有与字符串数组中的值匹配的名称的字段,然后对其执行"get"调用以填充resourceId:
Class rClass = R.drawable.class;
Field resourceConstant =rClass.getField(img[contar]);
int resourceId = resourceConstant.getInt(null); //since it's a static field, pass null here
mBitmap = BitmapFactory.decodeResource(getResources(), resourceId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |