Android listview加载本地图片

来源:互联网 发布:商务通弹窗js代码 编辑:程序博客网 时间:2024/06/12 23:50

先写布局文件

<ListView
                android:id="@+id/iv_list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:scrollbars="none" />

再写实体类

public class Image {
private int id;


 public GvData(int imageid){
            this.id = imageid;
         
        }

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}
}

适配器

import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;


public class BaiNaImageAdapter extends BaseAdapter {
private Context context;
private List<Bitmap> bplist;;


public BaiNaImageAdapter(Context context, List<Bitmap> bplist) {
super();
this.context = context;
this.bplist = bplist;
}


@Override
public int getCount() {
return bplist.size();
}


@Override
public Object getItem(int position) {
return bplist.get(position);
}


@Override
public long getItemId(int position) {
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = View.inflate(context, R.layout.fl_item_image, null);
viewHolder.iv = (ImageView) convertView.findViewById(R.id.iv_item);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.iv.setImageResource(bnList.get(position).getId()); 
return convertView;
}


private static class ViewHolder {
private ImageView iv;
}

}


类里面的集合加入本地图片

这一句都是会添加的private BaiNaImageAdapter mAdapter ;

ArrayList<Image> list = new ArrayList<>();

list.add(new Image(R.drawable.imag1));

list.add(new Image(R.drawable.imag2));

list.add(new Image(R.drawable.imag3));


mAdapter = new BaiNaImageAdapter(context, list );
mListView.setAdapter(mAdapter);

综上,就能显示本地list中的图片,如果你的listview嵌套了了ScrollView的话,要做适当的处理


还有一种集合的写法是这样的

private int[] imgs = { R.drawable.baina_shop_01, R.drawable.baina_shop_02, R.drawable.baina_shop_03 };


bplist = new ArrayList<Bitmap>();
for (int i = 0; i < imgs.length; i++) {
bplist.add(Utils.readBitMap(context, imgs[i]));
}

这个的写法就不需要写实体类,不过在适配器中,要相应的写成private List<Imagview> list;;

viewHolder.iv.setImageBitmap(bplist.get(position));

以上就是全部内容,可能会存在一些瑕疵,请见谅




0 0
原创粉丝点击