zoukankan      html  css  js  c++  java
  • Android提高UI性能技巧

    提高UI性能的方法事实上有非常多在实际的开发中都已经用到了,在此做一下总结。

    1.降低主线程的堵塞时间

    若一个操作的耗时较长(超过5秒),我们应该将其放入后台线程中运行。仅仅在须要改动UI界面时通知主线程进行改动。

    Android已经提供了AsyncTask以实现从主线程生成新的异步任务的方法。

    2.提高Adapter&AdapterView的效率

    (1)重用已生成过的Item View

    (2)加入ViewHolder , 避免反复查找须要改动的控件

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
             convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
             holder = new ViewHolder();
             holder.text = (TextView) convertView.findViewById(R.id.text);
             holder.icon = (ImageView) convertView.findViewById(R.id.icon);
             convertView.setTag(holder);
        } else {
             holder = (ViewHolder) convertView.getTag();
        }
        return convertView;
    }
     
    static class ViewHolder {
        TextView text;
        ImageView icon;
    }
    
    3.优化布局文件,防止层级嵌套太深,最好不要多于5层

    (1)使用观察布局的工具: Hierarchy Viewer

    (2)使用布局优化工具:Layoutopt

    4.优化Activity背景图

    首先我们须知道,在Android的Activity中,不止有你使用SetContentView时使用的View,还包括了一些其它的View。


    其根View是一个DecorView,你设置的View就被包括在当中,id为content,例如以下图所看到的:


    在默认情况下。DecorView就包括了一个默认的背景图,我们将以此作为出发点。若我们须要在Activity中设置一个全屏的背景图。不应该加入ImageView或在Layout中再设置背景图。而应该调用setBackgroundDrawable()去改动DecorView的背景图。

    在不须要使用背景图时,我们应将背景图清空
    (1)代码方式:

    getWindow().setBackgroundDrawable()

    (2)xml形式

    //创建文件res/values/theme.xml
    <resources>
        <style name="Theme.CustomBackground" parent="android:Theme">
            <item name="android:windowBackground">@drawable/image</item>
        </style>
    </resources>
    
    //可依据须要将windowBackground设置为null或你须要的背景图
    在<activity /> 或者 <application />标签中加入android:theme="@style/Theme.CustomBackground"
    5.使用ViewStub

    ViewStub是一个看不见的,轻量级的View。它没有尺寸,也不会绘制以及以某种形式參与到布局中来。仅仅有当调用了Inflate之后当中的View才会被实例化,这意味着用ViewStub保留View层次的结构的代价是非常低的。

    使用方式见下面链接:

    http://blog.csdn.net/hitlion2008/article/details/6737537

  • 相关阅读:
    妈妈之歌 The Mom Song 中文字幕
    40个实用的轻量级JavaScript库
    2009超强流行词汇
    60+CSS技巧教程资源大全
    关于zindex的那些事儿
    FF和IE之间7个JavaScript的差异
    IE6 不支持PNG问题
    邮件营销EDM模板制作规范
    css层的定位position、absolute、relative层叠加的五条叠加法则
    IE8的CSS hack
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6939684.html
Copyright © 2011-2022 走看看