android - 如何使用存储在 xml 中的可绘制数组使用 ImageAdapter 填充 gridView

标签 android xml gridview

我正在使用 google 文档中提供的示例 ImageAdpater 来使用可绘制对象填充 gridview。我想要做的是用 xml 文件中的一组可绘制对象填充 gridview。

我使用 TypedArray imgs = getResources().obtainTypedArray(R.array.log_type_icons); 从我的主要 Activity 中访问数组,但这在 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>

工作的 ImageAdapter:

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 数组,但我也从我的主要 Activity 中引用了 xml 数组,因此能够添加到 xml 而不必更改代码是理想的. 有没有人对此有任何见解?我做错了什么或遗漏了一些明显的东西吗?

任何帮助将不胜感激, 谢谢

最佳答案

我最终通过使用“getResources().obtainTypedArray(R.array.log_type_icons);”解决了这个问题。在我的主要 Activity 中获取数组,然后将其传递给图像适配器,而不是在适配器中使用“getResources()”

关于android - 如何使用存储在 xml 中的可绘制数组使用 ImageAdapter 填充 gridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13577125/

相关文章:

java - Gradle 包装器版本问题

android - 什么是 Android 矢量绘图规范

javascript - 将 XML 集成到 iOS Web App 的 HTML 页面中

c# - GridView 编辑/更新事件在 1 次单击后未触发

c# - 使用javascript绑定(bind)gridview?

android - 如何在android上加载保存在sdcard中的Html页面?

android - 如何将自定义textview中的第一个字母大写?

javascript - 如何在 Javascript 中写双引号

xml - Q : Sitemap XML - Should I include the #Section links of my single-page website?

java - Android Grid View 在 Android 版 kitkat 上崩溃