我正在使用谷歌文档中提供的示例 ImageAdpater 来填充带有可绘制对象的网格视图。我想要做的是在 xml 文件中使用一组可绘制对象填充 gridview。
我用来TypedArray imgs = getResources().obtainTypedArray(R.array.log_type_icons);
从我的主要活动中访问数组,但这在 ImageAdapter 类中不起作用。
数组:
<string-array name="log_type_icons">
<item>@drawable/ic_launcher</item>
<item>@drawable/ic_headache</item>
<item>@drawable/ic_man</item>
<item>@drawable/ic_woman</item>
<item>@drawable/ic_kneel</item>
</string-array>
工作图像适配器:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
Log.i("log tag", "gotten resources: " + mThumbIds);
if (convertView == null) { // if it's not recycled, initialize some
// attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = { R.drawable.ic_headache,
R.drawable.ic_kneel, R.drawable.ic_man, R.drawable.ic_woman,
R.drawable.ic_launcher };
}
我知道我可以手动添加对 Integer 数组的可绘制引用,但我也从我的主要活动中引用了 xml 数组,因此能够添加到 xml 而不必更改代码是理想的选择。有没有人对此有任何见解?我做错了什么或遗漏了一些明显的东西吗?
任何帮助将不胜感激,谢谢