在drawable foder中有很多图像,所以相反手动创建所有图像资源ID的数组,我想动态获取数组中可绘制文件夹的所有图像.目前即时使用此代码:
for(int i=1;i<=9;i++)
{
int imageKey = getResources().getIdentifier("img"+i, "drawable", getPackageName());
ImageView image = new ImageView(this);
image.setId(imgId);
image.setImageResource(imageKey);
image.setScaleType(ImageView.ScaleType.FIT_XY);
viewFlipper.addView(image, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
imgId++;
}
Run Code Online (Sandbox Code Playgroud)
但在该代码中我需要手动编辑图像名称以获取资源ID但我想获得任何名称的所有图像..
Vin*_*hwa 19
你可以使用Reflection来实现这一目标.
导入Field类
import java.lang.reflect.Field;
然后在你的代码中写这个
Field[] ID_Fields = R.drawable.class.getFields();
int[] resArray = new int[ID_Fields.length];
for(int i = 0; i < ID_Fields.length; i++) {
try {
resArray[i] = ID_Fields[i].getInt(null);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
resArray[] 现在保存对应用程序中所有drawable的引用.
好吧,如果您的图像名称是img1,img2等,那么您可以创建一个变量
String url = "drawable/"+"img"+i;
int imageKey = getResources().getIdentifier(url, "drawable", getPackageName());
Run Code Online (Sandbox Code Playgroud)
你也可以用你的包名替换你的getPackageName()方法,比如"com.android.resource"
简单来说,一般的功能是
public int getIdentifier(String name, String defType, String defPackage)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11369 次 |
| 最近记录: |