通过自定义适配器在 Listview 的 ImageView 中动态添加图片

Posted

技术标签:

【中文标题】通过自定义适配器在 Listview 的 ImageView 中动态添加图片【英文标题】:Add Images in ImageView of Listview dynamically via Custom Adapter 【发布时间】:2014-10-17 13:17:20 【问题描述】:

我有一个包含图像视图的列表视图。我想在列表视图中显示图像(大约 600 个)。为此,我想制作这样一个列表视图,它只加载一些图像(大约 10-15 个),当我到达列表视图的底部时,它会加载更多的 10-15 个图像。我使用了自定义 ArrayAdapter。

class MyAdapter extends ArrayAdapter<String>

    Bitmap[] bmp = null;
    Context context;
    Uri[] URIs;
    LayoutInflater layout;


    public MyAdapter(Context context, int resource, Uri[] URIs,
            List<String> objects, Bitmap[] bmp) 
        super(context, resource, objects);
        // TODO Auto-generated constructor stub
        this.bmp = bmp;
        this.context = context;
        this.URIs = URIs;
    

    class MyViewHolder 
        ImageView imageView;

        public MyViewHolder(View v)  // TODO Auto-generated constructor
            // stub
            imageView = (ImageView) v.findViewById(R.id.imageView_row);
        
    

    @Override
    public int getCount()  // TODO Auto-generated method stub
        return URIs.length;
    

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
        View row = convertView;
        MyViewHolder holder = null;
        if (row == null) 
            layout = (LayoutInflater) context
                    .getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);
            row = layout.inflate(R.layout.row_hometab_pic, parent, false);
            holder = new MyViewHolder(row);
            row.setTag(holder);
         else 
            holder = (MyViewHolder) row.getTag();
        
        Picasso.with(getActivity()).load(URIs[position]).resize(300, 300)
                .centerInside().into(holder.imageView);
        return row;
    

请帮忙...

【问题讨论】:

【参考方案1】:

好的,你可以这样做:

    通过扩展BaseAdapter 创建一个类。 在适配器中,保留一个名为itemsToDisplay 的变量。 在getCount() 中返回此变量。 在getView() 中返回您的自定义视图。 无论您在何处显示列表,在底部添加一个按钮,上面写着:Load More Images 或其他。 单击该按钮将使itemsToDisplay 增加一些值。 调用适配器上的notifyDataSetChanged 以在itemsToDisplay 更改后显示更多图像。

【讨论】:

以上是关于通过自定义适配器在 Listview 的 ImageView 中动态添加图片的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义(对象)适配器过滤 ListView

在自定义 Listview 适配器中使用多个视图

为 listview 定义 onlick:在 listView 级别的 Onclick 与自定义视图适配器内的 Onclick

自定义 ListView 中的滚动滞后

片段中的自定义列表适配器

ListView 和自定义适配器在 Kotlin 中不起作用