适用于GirdView和RecyclerView等添加多张图片操作。
实际演示和讲解。
-
如下六张图片资源,只有名字的末尾数字不同,我们可以通过循环获得它们的资源ID。并运用到GridView等的适配器item中。
声明图片资源的数量和一个数组用于存储六张图片的ID
private int imageCount = 6;
private Integer[] mImageIds;
- 初始化数组,并且通过getIdentifier()方法循环得到各个图片的资源ID
mImageIds = new Integer [imageCount];
for (int i = 0; i < imageCount; i++) {
// getIdentifier()有三个参数,
//第一个为你的图片资源名称也就是 use1 等,由于我的图片是从1开始所以要加i+1
// 第二个为资源目录名称,PS:如果你的图片是放在mipmap目录下,可以将drawable修改为mipmap即可
int imageResId= getResources().getIdentifier("use" + (i + 1), "drawable", this.getPackageName());
// 将图片ID添加到数组中
mImageIds[i] = imageResId;
Log.e("ImageResID=", mImageIds[i] + " ----");
}
// 日志Log输出结果
ImageResID=: 2130837597 ----
ImageResID=: 2130837598 ----
ImageResID=: 2130837599 ----
ImageResID=: 2130837600 ----
ImageResID=: 2130837601 ----
ImageResID=: 2130837602 ----
项目实际运用
在各个适配器中,只需在需要的地方使用mImageIds数组即可。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 初始化一个ImageView
ImageView imageView = new ImageView(getApplicationContext());
// 为imageView设置图片资源
imageView.setImageResource(mImageIds[position]);
return imageView;
}