Android中GridView无法显示Drawable图片问题求助
解决GridView无法显示drawable图片的问题
嘿,我帮你排查下GridView不显示图片的问题,看了你的代码,有几个小细节需要调整,咱们一步步来:
问题点分析
- 多余的空构造函数:你的
Adapter_Category里有一个空的构造函数,不仅没用还容易造成混淆,建议删掉。 notifyDataSetChanged调用时机错误:你在把适配器绑定到GridView之前就调用了这个方法,这时候适配器还没和GridView建立关联,完全没必要,直接删掉这行就行。getItem和getItemId实现不规范:这两个方法你返回了null和0,虽然BaseAdapter允许这种写法,但正确实现它们能避免后续扩展功能时出现潜在问题。- 布局加载的小疏漏:
inflate布局时没有传入父容器参数,可能导致图片的布局参数异常,显示不出来。
修正后的代码
MinhActivity.java
public class MinhActivity extends Activity { GridView gridView; int categoryImages[] ={R.drawable.android1,R.drawable.android2,R.drawable.android3,R.drawable.android4, R.drawable.android5, R.drawable.android6}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_minh); gridView = findViewById(R.id.grView_categories); Adapter_Category adapter_category = new Adapter_Category(MinhActivity.this, categoryImages); gridView.setAdapter(adapter_category); } }
Adapter_Category.java
public class Adapter_Category extends BaseAdapter { LayoutInflater inflater; Context context; int arr[]; // 只保留需要的构造函数,提前初始化LayoutInflater public Adapter_Category(Context context, int[] arrlist){ this.context = context; this.arr = arrlist; inflater = LayoutInflater.from(context); } @Override public int getCount() { return arr.length; } @Override public Object getItem(int position) { // 返回对应位置的图片资源ID,方便后续使用 return arr[position]; } @Override public long getItemId(int position) { // 返回当前位置作为item的ID return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { // 传入父容器并设置attachToRoot为false,确保布局参数正确 convertView = inflater.inflate(R.layout.single_categories, parent, false); } ImageView imageView = convertView.findViewById(R.id.imageView); imageView.setImageResource(arr[position]); return convertView; } }
额外检查项
- 确认
single_categories.xml中的ImageView的id确实是imageView,并且宽高设置合理(比如用wrap_content、固定尺寸,避免设置为0dp却没添加约束)。 - 确认
drawable目录下存在android1到android6这些图片文件,文件名拼写正确,且没有放在仅高版本可用的drawable子目录(比如drawable-v24)中。
内容的提问来源于stack exchange,提问作者Đăng Minh
相关产品推荐
相关产品推荐

