listview优化

  • 涉及图片

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滑动更流畅。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自...
    丶萌面超人阅读 5,068评论 0 13
  • Listview现在最常用也拥有很好的性能的优化方式是在Adapter中使用静态的ViewHolder。在Adap...
    小飞猪阅读 2,944评论 0 1
  • ListView 是学安卓时候,第一个用到适配器的控件,相信使用它进行数据展示的时候,初学者都不会有太多问题。但是...
    Arnold_J阅读 3,073评论 0 0
  • 这节我们来讨论一下ListView的优化问题,ListView是我们在开发中非常常用的控件之一,而在开发中也经常会...
    反复横跳的龙套阅读 7,991评论 3 13
  • ListView不得不说是Android中最难用的控件之一,说它难用主要是因为它有太多的细节可以优化。那么下面就介...
    朴勋l阅读 5,966评论 0 2