首頁 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

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

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

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

新手 | 你問我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 11071|回復(fù): 0
上一主題 下一主題
[案例]

學(xué)習(xí)Android界面設(shè)計(jì)的超級(jí)利器HierarchyView.bat

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   
我看到別人的程序,想學(xué)習(xí)人家的UI布局是怎么做的,如何能窺探一二?
   
在學(xué)習(xí)ViewGroup和Layout時(shí)我們可能會(huì)有一個(gè)疑問,如果我在Xml布局文件中不放置Layout,直接放TextView等組件的時(shí)候,它是用什么方式布局的?
解決方法:   
Android的SDK中自帶了一個(gè)查看UI布局層級(jí)結(jié)構(gòu)的工具:HierarchyView.bat。在模擬器運(yùn)行的情況下,使用該工具可以將當(dāng)前的Activity中的UI組件們以對(duì)象樹的形式展現(xiàn)出來,每一個(gè)組件所包含的屬性也能窺探得到。在對(duì)象樹上的任意節(jié)點(diǎn)可以看到該節(jié)點(diǎn)及以下節(jié)點(diǎn)的顯示效果。使用HierarchyView能深入全面的理解xml布局文件,更可以通過它來學(xué)習(xí)別人優(yōu)秀的布局技巧。
      
(看到那個(gè)不起眼的hierachyview.bat文件沒,哎,竟然它是學(xué)習(xí)Android界面設(shè)計(jì)的超級(jí)利器)
  
  從圖中可以看到QQ登錄界面中的核心部分是用相對(duì)布局?jǐn)[放的,甚至可以看到有的TextView還用的是IDE自動(dòng)起的ID:TextView01。
下面我們解決第二個(gè)問題:找到默認(rèn)的布局方式是什么?
我們建一個(gè)新項(xiàng)目,Main.xml中只放一個(gè)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>
   
看看他的布局層次是什么樣的:
     
我們可以看到頂級(jí)元素是個(gè)PhoneWindow,其下有一個(gè)線性布局LinearLayout,再下面有一個(gè)應(yīng)用程序標(biāo)題條,
      
標(biāo)題條是由一個(gè)幀布局FrameLayout和一個(gè)TextView組成。   
我們自己寫的TextView也放在了一個(gè)Layout里,這個(gè)Layout就是ID叫做content的FrameLayout。
     
接下來我們?cè)賱?chuàng)建一個(gè)帶有LinearLayout的程序,看看他的層次結(jié)構(gòu)來確定一下,那個(gè)ID是content的FrameLayout是固有的還是因?yàn)闆]布局元素由系統(tǒng)自動(dò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界面層次結(jié)構(gòu)圖:
     
這一次我們同樣看到了那個(gè)Id是content的Framelayout:) 這說明它是窗口布局結(jié)構(gòu)里固有的。
</font

上一篇:Android 利用Java反射技術(shù)阻止通過按鈕關(guān)閉對(duì)話框
下一篇:縮小Android模擬器的顯示尺寸

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書 | 增值電信業(yè)務(wù)經(jīng)營許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-10-22 12:26 , Processed in 0.058046 second(s), 14 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表