国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義控件樣式實例詳解

2020-04-11 10:55:47
字體:
來源:轉載
供稿:網友

本文實例講述了Android自定義控件樣式的方法。分享給大家供大家參考,具體如下:

Android控件樣式自定義是用定義在drawable文件夾下的XML文件實現,在布局文件中通過設置控件的background屬性達到效果。

一、控件常見狀態:在XML文件中用到了selector節點,selector可以理解為狀態切換器,不同的狀態下切換不同的樣式,各種狀態用Item節點表示,以下為一些常見的狀態(注意:statelist中第一個匹配當前狀態的item會被使用。因此,如果第一個item沒有任何狀態特性的話,那么它將每次都被使用,這也是為什么默認的值必須總是在最后,各種狀態可以交叉使用):

1、android:state_pressed

boolean。“true”表示按下狀態使用(例如按鈕按下);“false”表示非按下狀態使用。

2、android:state_focused

boolean。“true”表示聚焦狀態使用(例如使用滾動球/d-pad聚焦button);“false”表示非聚焦狀態使用。

3、android:state_selected

boolean?!皌rue”表示選中狀態使用(例如tab打開);“false”表示非選中狀態使用。

4、android:state_checkable

boolean?!皌rue”表示可勾選狀態時使用;“false”表示非可勾選狀態使用。(只對能切換可勾選―非可勾選的構件有用。)

5、android:state_checked

boolean。“true”表示勾選狀態使用;“false”表示非勾選狀態使用。

6、android:state_enabled

boolean?!皌rue”表示可用狀態使用(能接收觸摸/點擊事件);“false”表示不可用狀態使用。

7、android:window_focused

boolean。“true”表示應用程序窗口有焦點時使用(應用程序在前臺);“false”表示無焦點時使用(例如notification欄拉下或對話框顯示)。       

二、shape的屬性:每個狀態(item)都對應著一個效果,shape是用來定義形狀的,以下為shape的一些常見屬性:

1、solid:實心,就是填充的意思

android:color指定填充的顏色

2、gradient:漸變

android:startColor和android:endColor分別為起始和結束顏色,android:angle是漸變角度,必須為45的整數倍。當angle=0時,漸變色是從左向 右。 然后逆時針方向轉,當angle=90時為從下往上。另外漸變默認的模式為android:type="linear",即線性漸變,可以指定漸變為徑向漸變,android:type="radial",徑向漸變需要指定半徑android:gradientRadius="50",也可一指定二者的綜合,掃描漸變 android: type="sweep"

3、stroke:描邊

android:width="2dp" 描邊的寬度,android:color 描邊的顏色。

我們還可以把描邊弄成虛線的形式,設置方式為:

android:dashWidth="5dp"android:dashGap="3dp"

其中android:dashWidth表示'-'這樣一個橫線的寬度,android:dashGap表示之間隔開的距離。

4、corners:圓角

android:radius為角的弧度,值越大角越圓。

我們還可以把四個角設定成不同的角度,方法為:

android:topRightRadius="20dp" 右上角
android:bottomLeftRadius="20dp" 右下角
android:topLeftRadius="1dp" 左上角
android:bottomRightRadius="0dp" 左下角

這里有個地方需要注意,bottomLeftRadius是右下角,而不是左下角

5、panding:內邊矩

下面是一個Button完整的定義:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">  <item android:state_pressed="true">   <shape>    <gradient    android:startColor="#ff8c00"    android:endColor="#FFFFFF"    android:angle="270"/>    <stroke android:width="2dp"    android:color="#dcdcdc"/>    <corners android:radius="2dp"/>    <padding android:left="10dp"    android:top="10dp"    android:right="10dp"    android:bottom="10dp"/>   </shape>  </item>  <item android:state_focused="true">   <shape>    <gradient    android:startColor="#ffc2b7"    android:endColor="#ffc2b7"    android:angle="270"/>    <stroke android:width="2dp" android:color="#dcdcdc"/>    <corners android:radius="2dp"/>    <padding    android:left="10dp"    android:top="10dp"    android:right="10dp"    android:bottom="10dp"/>   </shape>  </item>  <item>   <shape>    <gradient    android:startColor="#ff9d77"    android:endColor="#ff9d77"    android:angle="270"/>    <stroke    android:width="2dp"    android:color="#fad3cf"/>    <corners android:radius="2dp"/>    <padding    android:left="10dp"    android:top="10dp"    android:right="10dp"    android:bottom="10dp"/>   </shape>  </item> </selector>

更多關于Android控件相關內容感興趣的讀者可查看本站專題:《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达日县| 调兵山市| 巴青县| 汕尾市| 湖北省| 惠安县| 外汇| 凤庆县| 旺苍县| 固原市| 盐城市| 广宗县| 金坛市| 拉萨市| 巴彦县| 宜丰县| 邵东县| 兴山县| 枣阳市| 牙克石市| 宜兴市| 崇文区| 长岛县| 沧州市| 泰宁县| 新田县| 交城县| 清新县| 安岳县| 玉屏| 大洼县| 永康市| 永清县| 青神县| 旺苍县| 久治县| 时尚| 鄱阳县| 海盐县| 中山市| 靖安县|