通过自定义适配器在 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 定义 onlick:在 listView 级别的 Onclick 与自定义视图适配器内的 Onclick