ListView加载sd卡上的图片,滑动时才显示出来

寒烟凝绿 2015-05-16 05:23:38
数据带过来时 只显示一张 或者不显示图片,只有滑动出屏幕外再滑动回来时 其他的才显示出来


public class UploadAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private WeakHashMap<String, Bitmap> weakHashMap;
private HashMap<String, BitmapCompress> bitmapHashMap;
private List<HashMap<String, String>> list;

public UploadAdapter(Context context,
ArrayList<HashMap<String, String>> arrayList) {
weakHashMap = new WeakHashMap<String, Bitmap>();
this.list = arrayList;
bitmapHashMap = new HashMap<String, BitmapCompress>();
this.mInflater = LayoutInflater.from(context);
}

@Override
public int getCount() {

return list.size();
}

@Override
public Object getItem(int position) {

return position;
}

@Override
public long getItemId(int position) {

return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

HashMap<String, String> hashMap = list.get(position);
ViewHolder holder = new ViewHolder();

convertView = mInflater.inflate(R.layout.listview_photo_upload,
null);
holder.upload_img = (ImageView) convertView
.findViewById(R.id.upload_img);
holder.upload_text = (TextView) convertView
.findViewById(R.id.upload_text);

String id = hashMap.get("id");
bitmap = BitmapFactory.decodeResource(
context.getResources(), 0);
if (weakHashMap.get(id) == null && bitmapHashMap.get(id) == null) {
BitmapCompress bitmapCompress = new BitmapCompress(context,
holder.upload_img, weakHashMap, bitmapHashMap);
bitmapCompress.execute(id);
bitmapHashMap.put(id, bitmapCompress);
} else {
bitmap = weakHashMap.get(id);
holder.upload_img.setImageBitmap(bitmap);
}

holder.upload_text.setText("暂未上传");

return convertView;
}
}
...全文
234 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒烟凝绿 2015-05-21
  • 打赏
  • 举报
回复
引用 1 楼 theLastAlien 的回复:
因为你没有做convertView是否为空的判断。导致滑动时才去加载控件
后来我自定义的view 循环创建的 因为要做上传进度实时更新 而且每次只传一张的 用listview 一滑动 进度条位置就乱掉了
寒烟凝绿 2015-05-21
  • 打赏
  • 举报
回复
如果判断convertView是否为空,很容易导致重复第一屏的内容啊
生如夏花cch 2015-05-20
  • 打赏
  • 举报
回复
用ViewPager+PhotoView吧
天天就是搬砖 2015-05-20
  • 打赏
  • 举报
回复
我也遇到过相同问题。。
李元静 2015-05-20
  • 打赏
  • 举报
回复
一楼正解。。。。
longlong2533 2015-05-19
  • 打赏
  • 举报
回复
楼主不错,让我学到了很多。
_Alien 2015-05-19
  • 打赏
  • 举报
回复
因为你没有做convertView是否为空的判断。导致滑动时才去加载控件

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧