Android項(xiàng)目開發(fā)之UI設(shè)計(jì)器
開發(fā)人員可以用以下兩種方式聲明UI:一是通過.xml文件(不帶預(yù)覽界面)或者.axml文件(帶預(yù)覽界面)來描述;二是用C#代碼實(shí)現(xiàn)。
用.axml文件描述用戶界面(UI)時(shí),設(shè)計(jì)器分為【設(shè)計(jì)】視圖和【源】視圖。這種方式的優(yōu)點(diǎn)是:可以盡可能地把表現(xiàn)與控制行為的代碼分隔開。就是說,可以直接修改XML而不需要重新編譯。另外,還可以讓UI結(jié)構(gòu)可視化以及調(diào)試都變得更容易。
1、布局文件(.xml和.axml)
在XML中聲明UI之后,必須將其以.xml擴(kuò)展名或者.axml擴(kuò)展名保存在Android項(xiàng)目的Resources/Layout/目錄下,然后才能順利通過編譯。
•.xml文件:不帶設(shè)計(jì)界面
•.axml文件:帶設(shè)計(jì)界面
•可以隨時(shí)將.xml換名為.axml,也可以隨時(shí)將.axml換名為.xml。
編譯器編譯應(yīng)用程序時(shí),會(huì)將每個(gè)XML文件或者AXML文件都編譯成一個(gè)View。開發(fā)人員需要在Activity重載的OnCreate方法中指定載入哪個(gè)XML資源。
例如,下面的代碼加載Main.axml文件:
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); }
2、屬性分類
在【屬性】窗口中,下列分類可幫助快速找到對(duì)應(yīng)的屬性:
•Widget – 控件(帶設(shè)計(jì)界面的組件),主要屬性包括:id、visibility、text等
•Style – 可視化的樣式控制,例如:font、text color、background等
•Layout – 布局控制
•Scroll – 滾動(dòng)屬性
•Behavior – 行為控制
3、屬性默認(rèn)值
由于控件的值多數(shù)是繼承自所使用的主題(Android Theme),所以默認(rèn)情況下這些值大部分都是空白。即:默認(rèn)不顯示繼承過來的值,僅顯示開發(fā)人員明確指定的值。
4、常用屬性
下面列出一些最常用的屬性。
(1)ID
活動(dòng)(Activity)中的每個(gè)View對(duì)象都用一個(gè)整數(shù)類型的ID來標(biāo)識(shí),但是這個(gè)ID在XML文件中通常用字符串來表示。例如:
<Button android:id="@+id/mybutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text"/>
字符串開頭的【@】表明XML解析器應(yīng)該解析和擴(kuò)展ID字符串的剩余部分,并且把它標(biāo)識(shí)為一個(gè)ID資源。【+】意味著這是一個(gè)新資源名稱。
注意,引用在Resource中已經(jīng)定義的資源ID的時(shí)候不要使用“+”,而是用“android”命名空間來限定它。例如,下面的代碼引用empty.jpg文件:
android:id="@android:id/empty"
(2)wrap_content、fill_parent、match_parent
wrap_content:將元素大小調(diào)整到其自身內(nèi)容所要求的尺寸。
fill_parent:將元素大小調(diào)整到其父元素所能允許的最大尺寸?!竟ぞ呦洹恐小癓ayout” 選項(xiàng)卡下的布局控件默認(rèn)使用它。
match_parent:將元素大小調(diào)整到其父元素所能允許的最大尺寸。match_parent的作用和fill_parent的作用相同,【工具箱】中“Form Widgets”選項(xiàng)卡下的非布局控件(例如TextView、Button等)默認(rèn)使用它。
(3)dp
一般不推薦使用絕對(duì)度量單位指定height和width,而是應(yīng)該使用與密度無關(guān)像素單位(dp)。另外,應(yīng)盡量使用wrap_content,fill_parent等相對(duì)量度屬性,這樣做的好處是能讓應(yīng)用程序自適應(yīng)不同尺寸大小的設(shè)備屏幕。
(4)Left、Top、Right、Bottom
View的幾何形狀默認(rèn)是一個(gè)矩形,每個(gè)View都用Left、Top、Width、Height來確定其位置。
Left、Top返回的是相對(duì)于其父View的定位值。另外,View還給出了簡(jiǎn)便的方法來避免不必要的計(jì)算,例如Right、Bottom,這兩個(gè)屬性返回的是View的右邊緣和下邊緣的坐標(biāo)。其中,Right相當(dāng)于Left + Width,Bottom相當(dāng)于Top+Height。
(5)Size、width、height
一個(gè)View的Size有兩對(duì)(寬、高)值來構(gòu)造:
measured width、measured height:定義了一個(gè)view在它的parent中顯示為多大。實(shí)際的尺寸可通過調(diào)用 getMeasuredWidth()和 getMeasuredHeight()來得到;
width、height:這是在繪制時(shí)以及布局之后定義View在屏幕上的實(shí)際尺寸,這些值可能與measured height 和measured width不同,也可能相同。
為了測(cè)量元素的尺寸,View把它的padding計(jì)算在內(nèi)。Padding包括View的上下左右四個(gè)部分。Padding可以用特定的像素?cái)?shù)來抵消view的內(nèi)容部分。舉例來說,值為2的left padding將會(huì)把view的內(nèi)容從左邊緣向右推2個(gè)度量單位。
盡管View可以定義padding,但是它沒有提供margin,而是在ViewGgroup中提供該屬性。
(6)Margin
選中某個(gè)控件后,可拖動(dòng)下圖紅色框內(nèi)的控制點(diǎn)調(diào)整該控件的外邊距(Margin):
雙擊對(duì)應(yīng)的控制點(diǎn),還可以直接輸入或修改具體值,例如“39.3dp”,如下圖所示:
在上圖中,可看出還有幾個(gè)小矩形按鈕,拖動(dòng)它可修改下面的屬性:
•wrap_content:讓控件匹配其自身內(nèi)容的大小。
•match_parent:讓控件填滿其父容器的可用空間。
但是,并不是所有控件都能通過雙擊的辦法修改其屬性值,例如LinearLayout即使選中它也不會(huì)顯示控制點(diǎn),當(dāng)然也不能在界面中用雙擊的辦法修改它的屬性值。
5、大綱視圖(Outline View)
利用大綱視圖可快速選擇設(shè)計(jì)器中不易被選中的控件:
在大綱視圖中,和在設(shè)計(jì)器中一樣,也可以拖放、復(fù)制、粘貼,以及右鍵彈出快捷菜單。
當(dāng)設(shè)計(jì)器中有些控件不易選擇時(shí),也可以利用鼠標(biāo)右鍵彈出快捷菜單來操作:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android Studio設(shè)置繪制布局時(shí)的視圖
- Android Studio實(shí)現(xiàn)幀動(dòng)畫
- Android Studio實(shí)現(xiàn)補(bǔ)間動(dòng)畫
- Android UI設(shè)計(jì)與開發(fā)之實(shí)現(xiàn)應(yīng)用程序只啟動(dòng)一次引導(dǎo)界面
- Android UI設(shè)計(jì)與開發(fā)之仿人人網(wǎng)V5.9.2最新版引導(dǎo)界面
- Android UI設(shè)計(jì)之AlertDialog彈窗控件
- android?studio?項(xiàng)目?:UI設(shè)計(jì)高精度實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
相關(guān)文章
詳解Android沉浸式實(shí)現(xiàn)兼容解決辦法
本篇文章主要介紹了詳解Android沉浸式實(shí)現(xiàn)兼容解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11基于Android實(shí)現(xiàn)的文件同步設(shè)計(jì)方案
隨著用戶對(duì)自身數(shù)據(jù)保護(hù)意識(shí)的加強(qiáng),讓用戶自己維護(hù)自己的數(shù)據(jù)也成了獨(dú)立開發(fā)產(chǎn)品時(shí)的一個(gè)賣點(diǎn),若只針對(duì)少量的文件進(jìn)行同步,則實(shí)現(xiàn)起來比較簡(jiǎn)單,當(dāng)針對(duì)一個(gè)多層級(jí)目錄同步時(shí),情況就復(fù)雜多了,本文我分享下我的設(shè)計(jì)思路2023-10-10說說在Android如何使用服務(wù)(Service)的方法
這篇文章主要介紹了說說在Android如何使用服務(wù)(Service)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06Android學(xué)習(xí)項(xiàng)目之簡(jiǎn)易版微信為例(一)
這篇文章主要以簡(jiǎn)易版微信為例,為大家介紹了Android簡(jiǎn)易版微信項(xiàng)目的基礎(chǔ)知識(shí),感興趣的小伙伴們可以參考一下2016-06-06