我把我的图片放在我的文件夹里,没问题。
问题是,我想做这样的事情:
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.*img[contar]*);
换句话说,eclipse不允许我这样做
img[contar]
它只接受图像文件的特定名称(例如:crystalblue),我想让say从“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);
您还可以使用反射在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);