Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android提高UI性能技巧

Android提高UI性能技巧

編輯:關於Android編程

提高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()去修改DecZ喎?/kf/ware/vc/" target="_blank" class="keylink">vclZpZXe1xLGzvrDNvKGj1Nqyu9Do0qrKudPDsbO+sM28yrGjrM7Sw8fTpr2rsbO+sM28x+W/1Txicj4KKDEptPrC67e9yr2jujwvcD4KPHA+Z2V0V2luZG93KCkuc2V0QmFja2dyb3VuZERyYXdhYmxlKCk8L3A+CjxwPigyKXhtbNDOyr08L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:java;">//創建文件res/values/theme.xml //可根據需要將windowBackground設置為null或你需要的背景圖

在 或者 標簽中添加android:theme="@style/Theme.CustomBackground"
5.使用ViewStub

ViewStub是一個看不見的,輕量級的View。它沒有尺寸,也不會繪制以及以某種形式參與到布局中來。只有當調用了Inflate之後其中的View才會被實例化,這意味著用ViewStub保留View層次的結構的代價是很低的。

使用方式見以下鏈接:

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved