Android中的Shape和Selector的結(jié)合使用實(shí)例
一:在Android程序開發(fā)中,我們經(jīng)常會去用到Shape這個東西去定義各種各樣的形狀,首先我們了解一下Shape下面有哪些標(biāo)簽,都代表什么意思:
(1).solid:填充
android:color指定填充的顏色
(2).gradient:漸變
android:startColor和android:endColor分別為起始和結(jié)束顏色,
android:angle是漸變角度,必須為45的整數(shù)倍。
另外漸變默認(rèn)的模式為android:type=”linear”,即線性漸變,
可以指定漸變?yōu)閺较驖u變,android:type=”radial”,徑向漸變需要指定半徑android:gradientRadius=”50”。
angle值對應(yīng)的位置如圖:

(3).stroke:描邊
android:width=”2dp” 描邊的寬度,android:color 描邊的顏色。
我們還可以把描邊弄成虛線的形式,設(shè)置方式為:
android:dashWidth=”5dp”
android:dashGap=”3dp”
其中android:dashWidth表示'-‘這樣一個橫線的寬度,android:dashGap表示之間隔開的距離
(4).corners:圓角
android:radius為角的弧度,值越大角越圓。
我們還可以把四個角設(shè)定成不同的角度,同時設(shè)置五個屬性,則Radius屬性無效
android:Radius=”20dp” 設(shè)置四個角的半徑
android:topLeftRadius=”20dp” 設(shè)置左上角的半徑
android:topRightRadius=”20dp” 設(shè)置右上角的半徑
android:bottomLeftRadius=”20dp” 設(shè)置右下角的半徑
android:bottomRightRadius=”20dp” 設(shè)置左下角的半徑
(5).padding:間隔
可以設(shè)置上下左右四個方向的間隔
二:代碼如下:
(1).button_bg.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 漸變 -->
<gradient
android:endColor="#FFFFFF"
android:gradientRadius="50"
android:startColor="#ff8c00"
android:type="radial" />
<!-- 描邊 -->
<stroke
android:dashGap="3dp"
android:dashWidth="5dp"
android:width="2dp"
android:color="#dcdcdc" />
<!-- 圓角 -->
<corners android:radius="5dp" />
<!-- 間隔 -->
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
(2).shape_image.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 填充 -->
<solid android:color="#ff9d77" />
<!-- 定義填充的顏色值 -->
<!-- 描邊 -->
<stroke
android:width="2dp"
android:color="#fad3cf" />
<!-- 定義描邊的寬度和描邊的顏色值 -->
<!-- 圓角 -->
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
<!-- 設(shè)置四個角的半徑 -->
<!-- 間隔 -->
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
<!-- 設(shè)置各個方向的間隔 -->
</shape>
(3).button.xml如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item> <item android:drawable="@drawable/shape_image"></item> </selector>
相關(guān)文章
Android如何自定義View實(shí)現(xiàn)橫向的雙水波紋進(jìn)度條
最近有個需求需要實(shí)現(xiàn)自定義加載進(jìn)度條,于是深入研究了一下,這篇文章主要給大家介紹了關(guān)于Android如何自定義View實(shí)現(xiàn)橫向的雙水波紋進(jìn)度條的相關(guān)資料,需要的朋友可以參考下2021-11-11
Android webveiw 出現(xiàn)棧錯誤解決辦法
這篇文章主要介紹了Android webveiw 出現(xiàn)棧錯誤解決辦法的相關(guān)資料,出現(xiàn)java.lang.UnsupportedOperationException: For security reasons, WebView is not allowed in privileged processes,這里提供解決辦法,需要的朋友可以參考下2017-08-08
Android 個人理財工具一:項(xiàng)目概述與啟動界面的實(shí)現(xiàn)
本文主要介紹Android 開發(fā)個人理財工具項(xiàng)目概述與啟動界面的實(shí)現(xiàn),這里主要對實(shí)現(xiàn)項(xiàng)目的流程做了詳細(xì)概述,并對啟動界面簡單實(shí)現(xiàn),有需要的小伙伴可以參考下2016-08-08
Android發(fā)送xml數(shù)據(jù)給服務(wù)器的方法
這篇文章主要介紹了Android發(fā)送xml數(shù)據(jù)給服務(wù)器的方法,以實(shí)例形式較為詳細(xì)的分析了Android發(fā)送XML數(shù)據(jù)及接收XML數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
Android實(shí)現(xiàn)EditText內(nèi)容保存為Bitmap的方法
這篇文章主要介紹了Android實(shí)現(xiàn)EditText內(nèi)容保存為Bitmap的方法,涉及Android中saveBitmap方法的簡單使用技巧,需要的朋友可以參考下2016-01-01
Android中如何實(shí)現(xiàn)清空搜索框的文字
本文主要介紹Android中實(shí)現(xiàn)清空搜索框的文字的方法。項(xiàng)目中的有關(guān)搜索的地方,加上清空文字的功能,目的是為了增加用戶體驗(yàn),使用戶刪除文本更加快捷。需要的朋友一起來看下吧2016-12-12

