Android基礎 | UI檢視利器:Hierarchy Viewer

Hierarchy Viewer是隨AndroidSDK發佈的工具,位置在tools文件夾下,名爲hierarchyviewer.bat。它是Android自帶的非常有用而且使用簡單的工具,可以幫助我們更好地檢視和設計用戶界面(UI),絕對是UI檢視的利器,但是好像很少有人提它,難道是因爲太簡單?

 

具體來說主要功能有2個:

1.       從可視化的角度直觀地獲得UI佈局設計結構和各種屬性的信息,幫助我們優化佈局設計;

2.       結合debug幫助觀察特定的UI對象進行invalidate和requestLayout操作的過程。

 

1.       基本使用方法

(1)hierarchyviewer的使用非常簡單,啓動模擬器或者連接上真機後,啓動hierarchyviewer.bat,會看到下面的界面,Devices裏列出了可以觀察的設備,Windows裏列出的是當前選中的設備的可以用來顯示View結構的Window: 

 

     選中某個想要觀察的Window,比如上面列出的com.android.launcher/com.android.launcher.Launcher項,然後點擊菜單欄的Load View Hierarchy,就進入Layout View,由於要解析相關Window,所以這個過程要幾秒鐘,左邊列出的是當前窗口的樹型佈局結構圖,右邊列出的是當前選中的某個子View的屬性信息和在窗口中的位置:

 

    需要注意的是:Layout View列出的View結構是從視圖的根節點開始的,比如針對Launcher使用的layout,它的底層基礎佈局DragLayer實際上是放在一個FrameLayout裏的,該FrameLayout又是被PhoneWindow的DecorView管理的。

 

(2)點擊界面左下角類似九宮格的按鈕,就進入了Android稱之爲Pixel Perfect View的界面,這個界面裏主要是從細節上觀察UI效果:

      左邊是瀏覽視圖,中間是全局的視圖,右邊是當前關注的地方的細節放大,是像素級別的,對於觀察細節非常有用。

Refresh Rate用來控制View多久從模擬器或者真機上更新一次視圖數據。

Zoom就是放大局部細節用的,細節顯示在最右邊的視圖上。

Overlay比較有意思,主要用來測試在當前視圖上加載新的圖片後的效果,點擊Load…選擇圖片後,可以控制在當前界面上顯示的透明讀,滑動0%~100%的控件即可。如果選擇了Show in Loupe,右側的放大視圖也會將加載的圖片的細節結合着透明度顯示出來。不過目前這個Overlay做的比較簡單,合成的圖只能從界面的左下角爲原點畫出來,不能移動。


(3)在Layout View中,選中一個view的圖示,點擊工具欄的Display View,就可以看到這個view的實際顯示效果,可以點選Show Extras,這個功能也比較實用,可以顯示出該View中不同元素顯示的邊界,幫助我們檢查是否正確。

 

 2.       Hierarchyviewer的invalidate和requestLayout功能

對於Android的UI來說,invalidate和requestLayout是最重要的過程,Hierarchyviewer提供了幫助我們Debug特定的UI執行invalidate和requestLayout過程的途徑,方法很簡單,只要選擇希望執行這兩種操作的View點擊按鈕就可以。當然,我們需要在例如onMeasure()這樣的方法中打上斷點。這個功能對於UI組件是自定義的非常有用,可以幫助單獨觀察相關界面顯示邏輯是否正確。


轉自:http://blog.csdn.net/ddna/article/details/5527072

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章