前言
- 在
Android
開(kāi)發(fā)中,繪制UI
時(shí)常需各種布局 - 今天贷币,我將全面介紹
Android
開(kāi)發(fā)中最常用的五大布局
含
Android Studio 2.2
中新增的布局:約束布局(ConstraintLayout
)介紹
目錄
1. 布局類型
在Android
中怔匣,共有2類握联、6種布局方式,分別是:
2. 布局介紹
- 具體介紹
本文主要介紹傳統(tǒng)的5大布局,關(guān)于約束布局(ConstraintLayout)
具體點(diǎn)擊查看文章
3. 布局屬性
-
Android
的布局屬性通過(guò)XML
配置 - 下面金闽,主要講解布局公有屬性 & 特有屬性
3.1 公有屬性
即 5種布局都具備下述屬性
-
layout_width
纯露、layout_height
-
layout_margin
+方位 -
padding
+方位 gravity
layout_gravity
layout_gravity
一般作用于 LeanerLayout 和 FrameLayout,但此處為了與gravity
對(duì)比
layout_gravity
:多用于自身控件相對(duì)于父控件的位置
gravity
:多用于設(shè)置父控件里的子控件的位置
3.2 特有屬性
- 具體介紹如下
3.3 特別注意
- 5個(gè)布局元素可相互嵌套使用代芜,從而實(shí)現(xiàn)各種不同的效果
- 關(guān)于 線性布局(LinearLayout)的權(quán)重屬性layout_weight請(qǐng)看文章
4. 選擇器(Selector)
4.1 作用
通過(guò)設(shè)置選擇器(selector
)可使控件 在不同操作下(默認(rèn)埠褪、點(diǎn)擊等) 顯示不同樣式
通過(guò)
xml
編寫(xiě) =selector.xml
4.2 屬性
XML屬性 | 說(shuō)明 |
---|---|
android:drawable | 放一個(gè)drawable資源 |
android:state_pressed | 按下?tīng)顟B(tài),如一個(gè)按鈕觸摸或者點(diǎn)擊蜒犯。 |
android:state_focused | 取得焦點(diǎn)狀態(tài)组橄,比如用戶選擇了一個(gè)文本框。 |
android:state_hovered | 光標(biāo)懸停狀態(tài)罚随,通常與focused state相同玉工,它是4.0的新特性 |
android:state_selected | 選中狀態(tài) |
android:state_enabled | 能夠接受觸摸或者點(diǎn)擊事件 |
android:state_checked | 被checked了,如:一個(gè)RadioButton可以被check了淘菩。 |
android:state_enabled | 能夠接受觸摸或者點(diǎn)擊事件 |
注:上述所有屬性的取值 = boolean
屬性 = true
遵班、false
4.3 實(shí)例說(shuō)明
在drawable
添加 selector.xml
資源文件
button_selector.xml:
<?xml version="1.0" encoding="UTF-8"?>
< selector xmlns:android="http://schemas.android.com/apk/res/android">
< !-- 指定按鈕按下時(shí)的圖片 -->
<item android:state_pressed="true"
android:drawable="@drawable/start_down"
/>
< !-- 指定按鈕松開(kāi)時(shí)的圖片 -->
<item android:state_pressed="false"
android:drawable="@drawable/start"
/>
< /selector>
在布局文件main.xml中控件的屬性設(shè)置:
<Button
android:id="@+id/startButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_selector"
/>
5. 布局形狀(Shape)
- 作用:設(shè)置布局的顏色、邊框線
- 使用:通過(guò)
xml
編寫(xiě) =shape.xml
- 具體使用
<shape xmlns:android="http://schemas.android.com/apk/res/android">
// 默認(rèn)顏色
<solid android:color="#876543"/>
// 4個(gè)方向的邊框線
<padding
android:bottom="0dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
// 邊框線顏色潮改、大小
<stroke
android:width="1dp"
android:color="#000000" />
// 圓角
<corners android:radius="2dp" />
</shape>
在布局文件main.xml中控件的屬性設(shè)置:
<Button
android:id="@+id/startButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/layout_shape"
/>
注:同時(shí)設(shè)置點(diǎn)擊樣式 & 形狀
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="@color/black" />
</shape>
</item>
<item android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="@color/white" />
</shape>
</item>
</selector>
附:顏色透明度(即顏色透明程度是多少)
00% :FF(不透明)
5% : F2
10% :E5
15% :D8
20% :CC
25% :BF
30% :B2
35% :A5
40% :99
45% :8c
50% :7F
55% :72
60% :66
65% :59
70% :4c
75% :3F
80% :33
85% :21
90% :19
95% :0c
100% :00(全透明)
// 使用方式
// 在十六進(jìn)制顏色前加入
// 使用示例:黑色狭郑,透明度 = 10%(即顏色的透明程度是10% = 設(shè)計(jì)同學(xué)說(shuō)的“10%透明度”)
// 黑色的十六進(jìn)制:#000000
// 透明度 10%:E5
// 最終表示:#E5000000
6. 總結(jié)
- 本文全面介紹了
Android
常用布局 - 下面我將繼續(xù)對(duì)
Android
中的知識(shí)進(jìn)行深入講解 ,感興趣的同學(xué)可以繼續(xù)關(guān)注Carson_Ho的簡(jiǎn)書(shū)
相關(guān)系列文章閱讀
Carson帶你學(xué)Android:學(xué)習(xí)方法
Carson帶你學(xué)Android:四大組件
Carson帶你學(xué)Android:自定義View
Carson帶你學(xué)Android:異步-多線程
Carson帶你學(xué)Android:性能優(yōu)化
Carson帶你學(xué)Android:動(dòng)畫(huà)
歡迎關(guān)注Carson_Ho的簡(jiǎn)書(shū)
不定期分享關(guān)于安卓開(kāi)發(fā)的干貨汇在,追求短翰萨、平、快糕殉,但卻不缺深度亩鬼。