- 涉及图片
1.滑动的时候,停止加载图片,universalImageloader 里有自带的控制加载控制:
//PauseOnScrollListener的第一个参数指的是图片加载对象ImageLoader,
// 第二个参数为pauseOnScroll来控制是否在滑动的过程中暂停加载图片,如果需要暂停则传true,
// 第三个参数控制猛的滑动界面的时候图片是否加载。
PauseOnScrollListener listener = new PauseOnScrollListener(ImageLoader.getInstance(),
true, false, scrollListener);
listView.setOnScrollListener(new PauseOnScrollListener(imageLoader, pauseOnScroll, pauseOnFling));
2.加载缩略图。
一般来说,服务器给我们一张网络图片,有的有缩略图,有的没有,对于我们没有的,因为我们的控件本身显示的大小并不大,如果把大图放在列表里面,不但浪费内存,而且影响美观,通常我们的做法是裁剪,裁剪很简单,例如:
http://img5.adesk.com/593e63a4e7bce77af3eed7eb
这张图片原大小是:720*600
而我们控件大小呢可能只有:60*60。那么我们此时要做的就是裁剪,直接在网络图片地址后 加上 :?imageMogr2/thumbnail/!60x60r,完整地址就是:
http://img5.adesk.com/593e63a4e7bce77af3eed7eb?imageMogr2/thumbnail/!60x60r
-
纯布局
1.减少布局层次嵌套,使用android 自带的工具Hierarchy View ,工具可帮组我们查看布局哪块消耗时间最长。
2.显示数据的时候,尽量减少逻辑,或者可以说无逻辑,只是做一个显示,因为每次getView都会执行一次,也就意味着你的逻辑都要执行一遍,这个显然也是没有任何意义的。3.减少view的绘制时间,Android 每16.7s通知系统刷新一次ui,如果此时listview载入页面中显示,必然调用getView()方法,而其它控件也要测量显示,所以分给getView()显示的时间差不多只有16s,如果不能在这16秒内完成绘制,就会导致失帧,就是页面卡顿。
item布局尽量高度固定或者
match_parent
,慎用layout_weight
属性,减少onMeasure()
时间。4.当item高度不相同时,可
android:smoothScrollbar="true"
设置为true,可让app滑动更流畅。
网友评论