Android 通过自定义适配器在Listview的ImageView中动态添加图像
我有一个listview,它有一个imageview。我想在listview中显示图像(大约600个)。为此,我想制作这样一个listview,它只加载一些图像(大约10-15),当我到达listview的底部时,它会加载更多的10-15个图像。我使用了定制的ArrayAdapterAndroid 通过自定义适配器在Listview的ImageView中动态添加图像,android,android-listview,android-imageview,android-arrayadapter,Android,Android Listview,Android Imageview,Android Arrayadapter,我有一个listview,它有一个imageview。我想在listview中显示图像(大约600个)。为此,我想制作这样一个listview,它只加载一些图像(大约10-15),当我到达listview的底部时,它会加载更多的10-15个图像。我使用了定制的ArrayAdapter class MyAdapter extends ArrayAdapter<String>{ Bitmap[] bmp = null; Context context; Uri[
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;
}
}
class MyAdapter扩展了ArrayAdapter{
位图[]bmp=null;
语境;
Uri[]Uri;
平面布局;
公共MyAdapter(上下文上下文、int资源、Uri[]Uri、,
列出对象,位图[]bmp){
超级(上下文、资源、对象);
//TODO自动生成的构造函数存根
this.bmp=bmp;
this.context=上下文;
this.URIs=URIs;
}
类MyViewHolder{
图像视图图像视图;
公共MyViewHolder(视图v){//TODO自动生成构造函数
//存根
imageView=(imageView)v.findViewById(R.id.imageView_行);
}
}
@凌驾
public int getCount(){//TODO自动生成的方法存根
返回URIs.length;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
MyViewHolder=null;
if(行==null){
布局=(LayoutFlater)上下文
.getSystemService(getActivity().LAYOUT\u充气机\u服务);
行=布局。充气(R.layout.row\u hometab\u pic,父级,false);
holder=新的MyViewHolder(行);
row.setTag(支架);
}否则{
holder=(MyViewHolder)行。getTag();
}
Picasso.with(getActivity()).load(URI[position]).resize(300300)
.centerInside().插入(holder.imageView);
返回行;
}
}
请帮助……好的,以下是您可以做到的:
BaseAdapter
创建一个类李>
itemsToDisplay
的变量李>
getCount()
中返回此变量李>
getView()
中返回自定义视图李>
加载更多图像
或其他内容李>
项增加显示
李>
notifyDataSetChanged
,以在itemsToDisplay
中进行更改后显示更多图像