ListView 优化

常规优化

  • 复用View
    利用convertview回收视图,效率提高200%。
 public View getView(int position, View convertView, ViewGroup parent) {

       // TODO Auto-generated method stub

       if(convertView == null){
           convertView = (LinearLayout)this.layoutInflater.inflate(R.layout.list, null);
       }
       imageView = (ImageView)convertView.findViewById(R.id.imageView1);
       textView = (TextView)convertView.findViewById(R.id.textView1);
       imageView.setImageResource(R.drawable.icon);
       textView.setText(title[position]);

       return convertView;

    }
  • 使用ViewHolder
    利用viewholder模式,效率在提高50%
public View getView(int position, View convertView, ViewGroup parent) {
       // TODO Auto-generated method stub
       ViewHolder holder;
       if(convertView == null){
           convertView = (LinearLayout)this.layoutInflater.inflate(R.layout.list, null);
           holder = new ViewHolder();
           holder.tv = (TextView)convertView.findViewById(R.id.textView1);
           holder.im = (ImageView)convertView.findViewById(R.id.imageView1);
           convertView.setTag(holder);
       }else{
           holder = (ViewHolder)convertView.getTag();
           Log.d("list", "convertView....");
       }
       holder.im.setImageResource(R.drawable.icon);
       holder.tv.setText(title[position]);
       return convertView;
    }
    static class ViewHolder{
       TextView tv;
       ImageView im;
    }

进一步优化

  • 如果item中有图片一定要用异步加载。而且里面的图片尽量要用缩略图或者小图。
  • 判断手势,快速滑动时不加载里面的图片。
  • 要对数据进行分页加载。
    • 下拉刷新
    • 上滑加载
  • item的布局层级要越少越好。

检查性能

hierarchview

Hierarchy Viewer是随Android SDK发布的工具,位于Android SDK/tools/hierarchyviewer.bat (Windows操作系统,mac上显示的为hierarchyviewer),使用起来也是超级简单,通过此工具可以详细的理解当前界面的控件布局以及某个控件的属性(name、id、height等)。

不合理的布局会使我们的应用程序UI性能变慢,HierarchyViewer能够可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计。HierarchyViewer是我们优化程序的工具之一,它是Android自带的非常有用的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器。

怎么用它呢?

  1. 连接设备真机或者模拟器。
  2. 启动你要观察的应用。
  3. 打开Hierarchyviewer,点击hierarchyviewer文件即可。

参考复制 非著名程序员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值