ListView异步加载图片时出现错位的解决方案
来源:互联网 发布:网络运营商劫持 编辑:程序博客网 时间:2024/06/05 11:19
1.
解决方案:
原理:首先给ImageView设置一个Tag,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就是复用以前的就不加载了。
给ImageView设置一个标签
@Override public Object getItem(int position) { return URLS[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { //只有当convertView不存在的时候才去inflate子元素 if (convertView == null) { convertView = getLayoutInflater().inflate(R.layout.single_data, null); mHolder = new ViewHolder(); mHolder.mImageView = (ImageView) convertView.findViewById(R.id.image_view); mHolder.mTextView = (TextView) convertView.findViewById(R.id.text_view); convertView.setTag(mHolder); }else { mHolder = (ViewHolder) convertView.getTag(); } final String url = URLS[position]; mHolder.mTextView.setText(url != null ? url.substring(url.lastIndexOf("/") + 1) : ""); mHolder.mImageView.setTag(URLS[position]); if (mDownloader == null) { mDownloader = new ImageDownloader(); } //这句代码的作用是为了解决convertView被重用的时候,图片预设的问题 mHolder.mImageView.setImageResource(R.drawable.ic_launcher); if (mDownloader != null) { //异步下载图片 mDownloader.imageDownload(url, mHolder.mImageView, "/yanbin",MainActivity.this, new OnImageDownload() { @Override public void onDownloadSucc(Bitmap bitmap, String c_url,ImageView mimageView) { ImageView imageView = (ImageView) mListView.findViewWithTag(c_url); if (imageView != null) { imageView.setImageBitmap(bitmap); imageView.setTag(""); } } }); } return convertView; } /** * 使用ViewHolder来优化listview * @author yanbin * */ private class ViewHolder { ImageView mImageView; TextView mTextView; } } }
0 0
- ListView异步加载图片时出现错位的解决方案
- ListView异步加载图片出现图片错位的解决方案
- android listview 异步加载图片时出现图片错位、刷新问题的简单解决
- Android ListView图片异步加载时,图片错位的问题
- Android ListView异步加载图片错位解决方案一 使用findViewWithTag
- 安卓ListView图片异步加载错位的处理
- Android ListView 异步加载图片错位的问题
- Android ListView 异步加载图片错位的问题
- Android ListView 异步加载图片错位的问题
- listview异步加载图片并防止错位
- Android ListView异步加载图片错位问题
- android中ListView异步加载图片时的图片错位问题解决方案
- android中ListView异步加载图片时的图片错位问题解决方案(1)
- android中ListView异步加载图片时的图片错位问题解决方案
- android中ListView异步加载图片时的图片错位问题解决方案
- ListView加载图片的错位解决方案(二)
- Android的ListView异步加载图片时,错位、重复、闪烁问题的分析及解决方法
- Listview 设置两列异步加载网络图片,结果出现图片显示错位
- cookie.setPath()的用法
- Spring hibernate配置中mappingLocations、mappingDirectoryLocations与mappingJarLocations 区别
- Ubuntu下修改环境变量的三种方法
- Failed to create the VirtualBoxClient COM object. 解决这个鸟问题!
- 匹配全部中文的正则表达式
- ListView异步加载图片时出现错位的解决方案
- plist文件取数据
- 完美洗牌算法
- Linux crontab定时服务
- liferay学习博文链接
- epoll服务器示例, 监听5000个端口, 使用线程池
- 剑指offer系列之六:旋转数组的最小值
- POI 基于JAVA的通用类抽取
- postgresql启用日志记录