listview滑动卡顿
来源:互联网 发布:淘宝爱护佳腰带 编辑:程序博客网 时间:2024/04/27 23:17
listview滑动卡顿,网上搜索了一下原因有很多,排除了一下,最后发现和图片加载相关。一开始是自己自定义了一个Cache类,用来缓存图片,最后发现这样做的效率并不高,不如用ImageLoader,下面贴代码
1.在adapter里
private List<EscorterListEntity.DataEntity> mList=new ArrayList<>(); private Context context; ImageLoader imageLoader = null; DisplayImageOptions options; private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); public void setData(List<EscorterListEntity.DataEntity> entityList,Context context){ this.mList=entityList; this.context=context; notifyDataSetChanged(); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.defaultphoto) .showImageForEmptyUri(R.mipmap.defaultphoto) .showImageOnFail(R.mipmap.defaultphoto) .cacheInMemory(true).cacheOnDisc(true).considerExifParams(true) .displayer(new RoundedBitmapDisplayer(0)).build(); imageLoader = ImageLoader.getInstance(); }
private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener { static final List<String> displayedImages = Collections .synchronizedList(new LinkedList<String>()); @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if (loadedImage != null) { try { ImageView imageView = (ImageView) view; //用来控制显示头像的剪切范围,3/4时明显用户的照片显示不全 Bitmap bm = BitmapTools.cutBitmap(loadedImage, 4 / 4f); imageView.setImageBitmap(bm); boolean firstDisplay = !displayedImages.contains(imageUri); if (firstDisplay) { FadeInBitmapDisplayer.animate(imageView, 500); displayedImages.add(imageUri); } } catch (Exception e) { } } } }
bitmapTools.class:
public class BitmapTools {public static Bitmap cutBitmap(Bitmap bitmap, float HWRate) {try {int sh = bitmap.getHeight();int sw = bitmap.getWidth();int needW, needH;float p1 = 1.0f * sh / sw;float p2 = HWRate;if (p1 > p2) {needW = sw;needH = (int) (sw * HWRate);} else {needW = (int) (sh / HWRate);needH = sh;}int x = (sw - needW) / 2;int y = (sh - needH) / 2;Matrix matrix = new Matrix();matrix.postScale(1, 1);Bitmap bm = Bitmap.createBitmap(bitmap, x, y,needW, needH, matrix, true);return bm;} catch (Exception ex) {return bitmap;}}}
2.在getView()方法里,设置image
imageLoader.displayImage(url,holder.iv_avatar_w, options,animateFirstListener);
3.别忘了在Application中初始化
<span></span>/**** * 图片加载组件初始化 */ ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( this.getApplicationContext()) .threadPriority(Thread.NORM_PRIORITY - 2) .denyCacheImageMultipleSizesInMemory() .discCacheFileNameGenerator(new Md5FileNameGenerator()) .tasksProcessingOrder(QueueProcessingType.LIFO) .writeDebugLogs().build(); ImageLoader.getInstance().init(config);
0 0
- listview滑动卡顿
- Android ListView滑动卡顿优化
- android listview 滑动卡顿问题解决
- 解决listview中imageloder中加载图片滑动卡顿
- ListView滑动卡顿问题的解决思路
- ListView嵌套RecycleView滑动卡顿问题的优化方案
- ios 滑动卡顿
- listview使用时应注意的和listview滑动卡顿优化
- 解决:ScrollView中嵌套ListView,使得listview上下滑动卡顿现象
- 解决:ScrollView中嵌套ListView 使得listview上下滑动卡顿现象
- ListView卡顿问题解决
- ListView卡顿分析
- 横向滑动的listview效果的实现方法,scrollview嵌套水平滑动的listview卡顿的解决方法
- UITableView滑动卡顿解决方案
- #UITableView滑动卡顿优化
- 手机滑动卡顿,怎么办?
- html 滑动卡顿问题
- ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)
- 安卓开发之如何利用剪切板传递复杂数据
- 【代码笔记】iOS-和当前时间比较
- JQuery实现DIV的显示与隐藏
- 使用AsyncDisplayKit提升UICollectionView和UITableView的滚动性能
- css属性之text-indent下图片也缩进的处理
- listview滑动卡顿
- 为什么Nginx的性能要比Apache高很多?
- 编写C#调用的C++DLL
- android 使用 ase执行python脚本
- 输入输出挂
- Swift - 同步请求数据(NSURLSession方式)
- java多线程之ThreadPoolExecutor
- Android的广播机制
- Spring 和JdbcTemplate 和 JdbcDaoSupport方式对比