【轉載】學習Android介面設計的超級利器HierarchyView.bat

來源:互聯網
上載者:User
存在問題: 
我看到別人的程式,想學習人家的UI布局是怎麼做的,如何能窺探一二? 
存在問題: 
在學習ViewGroup和Layout時我們可能會有一個疑問,如果我在Xml布局檔案中不放置Layout,直接放TextView等組件的時候,它是用什麼方式布局的?
解決方案: 
Android的SDK中內建了一個查看UI布局層級結構的工具:HierarchyView.bat。在模擬器啟動並執行情況下,使用該工具可以將當前的Activity中的UI組件們以對象樹的形式展現出來,每一個組件所包含的屬性也能窺探得到。在對象樹上的任意節點可以看到該節點及以下節點的顯示效果。使用HierarchyView能深入全面的理解xml布局檔案,更可以通過它來學習別人優秀的布局技巧。


(看到那個不起眼的hierachyview.bat檔案沒,哎,竟然它是學習Android介面設計的超級利器)

具體使用方法:待模擬器及想觀察的程式啟動後,雙擊Hirerachyview.bat,點擊Load View Hierarchy


現在我們先解決第一個問題:分析AndroidQQ的登入介面組成。
可以看到QQ登入介面中的核心部分是用相對布局擺放的,甚至可以看到有的TextView還用的是IDE自動起的ID:TextView01。
下面我們解決第二個問題:找到預設的布局方式是什嗎?
我們建一個新項目,Main.xml中只放一個TextView,
<?xml version="1.0" encoding="utf-8"?> 
<TextView android:text="hi" android:id="@+id/TV" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"></TextView>

看看他的布局層次是什麼樣的:


我們可以看到頂級元素是個PhoneWindow,其下有一個線性布局LinearLayout,再下面有一個應用程式標題條,  

標題條是由一個幀布局FrameLayout和一個TextView組成。 
我們自己寫的TextView也放在了一個Layout裡,這個Layout就是ID叫做content的FrameLayout。
接下來我們再建立一個帶有LinearLayout的程式,看看他的階層來確定一下,那個ID是content的FrameLayout是固有的還是因為沒布局元素由系統自動加上去的。
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <TextView android:text="haha" android:id="@+id/TextView01" 
        android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
</LinearLayout>
下面是新程式的UI介面階層圖:這一次我們同樣看到了那個Id是content的Framelayout:) 這說明它是視窗布局結構裡固有的。
出自:《android學習指南》

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.