不是都寫在main.xml中。默認(rèn)的主activity默認(rèn)的布局文件時(shí)main.xml,如果布局不一樣,另一個(gè)activity設(shè)置另一個(gè)布局文件,和main.xml是并列的,也在layout文件夾下,使用setContentView(R.layout.XXX)設(shè)置。圖片通常都放在res/drawable文件夾中,drawable一共有三個(gè)文件夾,高,中,低三種分辨率,放在哪個(gè)文件夾下自己決定吧。
創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序設(shè)計(jì)、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。
?xml?version="1.0"?encoding="utf-8"?
RelativeLayout
xmlns:android=""
android:layout_width="match_parent"
android:layout_height="match_parent"
RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
EditText
android:layout_width="match_parent"
android:layout_height="match_parent"/
Button
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:text="發(fā)送"/
/RelativeLayout
LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="yes"/
Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="no"/
/LinearLayout
/RelativeLayout
付上效果圖,望采納
Android常見的5個(gè)布局,我想大家一定不會陌生。LinearLayout、RelativeLayout和FrameLayout也是使用頻率較高的布局方式,做Android開發(fā)的一定使用過。
傳統(tǒng)的5種布局方式:
不過我的問題并不是問面試者如何使用這些基礎(chǔ)的布局,而是要看面試者怎么解決布局嵌套(影響性能)和屏幕適配問題。
我們都清楚Android界面的布局太復(fù)雜,嵌套層次過深,會使整個(gè)界面的測量、布局和繪制變得更復(fù)雜,對性能會造成影響。所以我們在寫Layout文件時(shí),也要盡量避免布局的嵌套層次過深的問題。
在怎么解決問題之前,我們得有一個(gè)好方法先判斷當(dāng)前的問題情況。Android SDK工具箱中有一個(gè)叫做Hierarchy Viewer的工具,能夠在App運(yùn)行時(shí)分析Layout。
注意: 在ROOT的手機(jī),或者是安裝開發(fā)版的ROM的手機(jī)可以直接使用Hierarchy Viewer。如果沒有Root的手機(jī)(SDK 4.1及以上),需要在你的PC端添加一個(gè)環(huán)境變量“ANDROID_HVPROTO=ddm”。
下面列舉一些面試者常使用的方式。
merge merge標(biāo)簽的作用是合并UI布局,使用該標(biāo)簽?zāi)芙档蚒I布局的嵌套層次。
merge標(biāo)簽可用于兩種情況:
ViewStub ViewStub標(biāo)簽引入的布局默認(rèn)不會inflate,既不會顯示也不會占用位置。 ViewStub常用來引入那些默認(rèn)不會顯示,只在特殊情況下顯示的布局,如數(shù)據(jù)加載進(jìn)度布局、出錯(cuò)提示布局等。
需要在使用時(shí)手動inflate:
ViewStub在一定的程度可以起到減少嵌套層次的作用,特別是很多時(shí)候我們的程序可能不需要走到ViewStub的界面。
include 將可復(fù)用的組件抽取出來并通過include標(biāo)簽使用,但include標(biāo)簽?zāi)軠p少布局的層次嗎?
我認(rèn)為不能。include主要解決的是相同布局的復(fù)用問題,它并不能減少布局的層次。
用RelativeLayout代替LinearLayout
很多人為了減少布局層次喜歡用RelativeLayout代替LinearLayout,不過可能達(dá)到的效果并不會很明顯。層次是減少了,但本身RelativeLayout就會比LinearLayout性能差一點(diǎn)。
有一些界面,比如一個(gè)圖片和一個(gè)文本的布局(ListItem常見的布局方式),可以利用TextView有drawableLeft, drawableRight等屬性,完全不需要RelativeLayout或者LinearLayout布局。
傳統(tǒng)的布局方式存在一定的缺陷,如RelativeLayout要兩次測量(measure)它的子View才能知道確切的高度;如果LinearLayout布局的子View有設(shè)置了layout_weight,那么它也需要測量兩次才能獲得布局的高度。
相對于傳統(tǒng)的布局方式,Android官方還推出了兩種新的布局方式:ConstraintLayout和FlexboxLayout。
ConstraintLayout ConstraintLayout即約束布局,在2016年由Google I/O推出。ConstraintLayout和RelativeLayout有點(diǎn)類似,控件之間根據(jù)依賴關(guān)系而存在,但比RelativeLayout更加靈活。創(chuàng)建大型復(fù)雜的布局仍然可以使用扁平的層級(不用嵌套View Group),說的簡單些就是,再復(fù)雜的界面也可以只有2層層次。
要使用ConstraintLayout需要在build.gradle中添加相關(guān)的support庫:
使用ConstraintLayout可以有效的解決布局嵌套過多導(dǎo)致的性能問題,官方也對其渲染性能進(jìn)行了優(yōu)化,并且ConstraintLayout支持可視化的方式編寫布局。
不過學(xué)會熟練使用ConstraintLayout會需要一點(diǎn)時(shí)間,但這是值得的。
FlexBoxLayout 做過前端開發(fā)(CSS方面)的同學(xué)對FlexBox一定不會陌生,最近我在做微信小程序開發(fā)時(shí)也涉及到FlexBox。FlexBox(彈性布局)是w3c在2009年提出的一種新的布局方案,解決以前那種傳統(tǒng)css的盒模型的局限性。
Google開源了FlexboxLayout布局和前端CSS FlexBox布局具有相同的功能(肯定有不一樣的地方),但已經(jīng)足夠在Android上改進(jìn)布局的構(gòu)建方式。
FlexBoxLayout可以理解成一種更高級的LinearLayout,不過比LinearLayout更加強(qiáng)大和靈活。如果我們使用LinearLayout布局的話,那么不同的分辨率,也許我們要重新調(diào)整布局,勢必會需要跟多的布局文件放在不同的資源目錄。而使用FlexBoxLayout來布局的話,它可以適應(yīng)各種界面的改變(所以叫響應(yīng)式布局)。
如果對前端的Flexbox不太了解的話,你還需要補(bǔ)一些概念,好在這些東西在網(wǎng)上很容易找到。
可能很多讀者會覺這樣的面試題是吹毛求疵,很多項(xiàng)目中哪有這么復(fù)雜的界面,根本就用不到這些優(yōu)化措施。
可以說厲害的人,或者叫高手,可能只是比較多在意這些細(xì)節(jié)而已。在實(shí)踐中的經(jīng)歷告訴我,很多難于解決的性能問題,并不是因?yàn)橛幸粋€(gè)影響性能的問題無法攻克,而是沒有一個(gè)明顯的制約因素,是有各種小問題一點(diǎn)一點(diǎn)堆積起來,最終積重難返。
所以,把細(xì)節(jié)做好,或者意識到細(xì)節(jié)的地方可能引發(fā)的問題,對我們解決問題是很有幫助的,不要浪費(fèi)了讓你可以成長的細(xì)節(jié)。
有需要更多Android高級進(jìn)階和面試資料的朋友可以私信我獲取
在windows操作系統(tǒng)中可以按照如下方法為android studio設(shè)置字體(包括字體大小,字體顏色)。
1、首先創(chuàng)建一個(gè)android文件,并打開XML布局文件,如下圖:
2、添加TextView控件并,如下圖:
3、為TextView控件設(shè)置字體大小,如下圖:
4、為TextView控件設(shè)置字體顏色,如下圖:
文章題目:android布局文件,android布局文件的后綴名
轉(zhuǎn)載注明:http://aaarwkj.com/article18/dssphdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站維護(hù)、、全網(wǎng)營銷推廣、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)