首頁 收藏 QQ群
 網站導航

ZNDS智能電視網 推薦當貝市場

TV應用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 11325|回復: 0
上一主題 下一主題
[案例]

學習Android界面設計的超級利器HierarchyView.bat

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2013-8-28 16:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   
我看到別人的程序,想學習人家的UI布局是怎么做的,如何能窺探一二?
   
在學習ViewGroup和Layout時我們可能會有一個疑問,如果我在Xml布局文件中不放置Layout,直接放TextView等組件的時候,它是用什么方式布局的?
解決方法:   
Android的SDK中自帶了一個查看UI布局層級結構的工具:HierarchyView.bat。在模擬器運行的情況下,使用該工具可以將當前的Activity中的UI組件們以對象樹的形式展現(xiàn)出來,每一個組件所包含的屬性也能窺探得到。在對象樹上的任意節(jié)點可以看到該節(jié)點及以下節(jié)點的顯示效果。使用HierarchyView能深入全面的理解xml布局文件,更可以通過它來學習別人優(yōu)秀的布局技巧。
      
(看到那個不起眼的hierachyview.bat文件沒,哎,竟然它是學習Android界面設計的超級利器)
  
  從圖中可以看到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。
     
接下來我們再創(chuàng)建一個帶有LinearLayout的程序,看看他的層次結構來確定一下,那個ID是content的FrameLayout是固有的還是因為沒布局元素由系統(tǒng)自動加上去的。
<?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:) 這說明它是窗口布局結構里固有的。
</font

上一篇:Android 利用Java反射技術阻止通過按鈕關閉對話框
下一篇:縮小Android模擬器的顯示尺寸
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標簽|軟件|Sitemap|ZNDS智能電視網 ( 蘇ICP備2023012627號 )

網絡信息服務信用承諾書 | 增值電信業(yè)務經營許可證:蘇B2-20221768 丨 蘇公網安備 32011402011373號

GMT+8, 2024-11-20 14:29 , Processed in 0.054970 second(s), 13 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2024 ZNDS.Com

快速回復 返回頂部 返回列表