天天看點

shape&selector

應邀前來寫這篇文章,此時的我正在回長沙的高鐵上,2016年最後諸多不順,希望2017年能改運,紅紅火火~~~~

好了,閑話不多說了,下面介紹一下,通過本篇文章你将學到如下知識點

shape的各屬性效果以及使用方式
layer-list (shape複雜化疊加使用)組合使用
selector 的正常使用方式
           

1.shape

顧名思義,shape就是用于定義形狀的,他能定義四種形狀:矩形,橢圓形,直線,環形。下面統一講解一下常用的屬性,之後附上不同屬性對應下的項目效果。

shape内屬性有 android:shape=“”,該值有四個,也就是上面提到的四種形狀

rectangle:矩形,預設值,其中包括常用的效果有 直角矩形,圓角矩形
oval:橢圓形,常用于繪制圓形
line:直線,常用于繪制實線和虛線 
ring:環形,常用于繪制環形進度條的效果
           

shape子标簽:

solid 設定形狀填充屬性
padding  設定内容區域與邊界間隙
corners 設定圓角屬性,隻有rectangle的情況下能用
stroke 描邊屬性
size 表示該shape圖形的大小
           

solid内屬性隻有 android:color=“”,該值設定形狀的顔色

padding内屬性有

android:top=“”  頂部間距
android:right=“”  右邊間距
android:bottom=“” 底部間距
android:left=“” 左邊間距
           

corners内屬性有

android:radius=“” 四個圓角的圓角半徑   下面四個特需屬性都會将本屬性覆寫
android:topLeftRadius=“” 左上角圓角半徑
android:topRightRadius=“” 右上角圓角半徑
android:bottomLeftRadius=“” 左下角圓角半徑
android:bottomRightRadius=“” 右下角圓角半徑 
           

stroke 内屬性有

android:width=“” 描邊寬度
android:color=“” 描邊顔色
android:dashGap=“” 當設定虛線時,表示虛線中每段小橫線的長度
android:dashWidth=“” 當設定虛線時,表示虛線中橫線間隔的距離
           

size 内屬性有

android:width=“” 表示shape的寬度
android:height=“” 表示shape的高度
           

下面将貼出各種屬性下對應的效果,這些是常用的一些屬性組合形成的,如有遺漏,大家可以通過不同屬性設定達到效果:

shape&selector

2.layer-list

layer-list,表示層級的概念,如果你使用過PS軟體進行圖檔制作修改,那麼你就能很容易的懂得,層級也就是所有效果的疊加,比如一個shape不能完全實作你的效果,那麼可以嘗試使用多個shape進行疊加實作,來個形象點的比如就像布局中的幀布局效果。

3.selector

selector表示的是選擇器,常用含義為控件在不同狀态下所對應的背景或顔色等,常用的如按鈕在通常情況是一種顔色,當按下時變成另外一種顔色等,下面詳細介紹下其中的屬性

selector下所有子标簽

item 表示每一種狀态條目 一般由一個狀态屬性和對應結果屬性
           

item下對應屬性

結果屬性
    android:drawable=“” 背景圖檔
    android:color=“” 背景顔色
狀态屬性  true或false
    android:state_window_focused=“” 視窗是否聚焦
    android:state_focused=“” 是否失去焦點
    android:state_pressed=“” 是否被點選
    android:state_selected=“” 是否被選中
    android:state_enabled=“” 是否能響應事件,此處的事件是指所有事件
    android:state_checked=“” 是否被單選選中
    android:state_checkable=“” 單選是否可選狀态
    android:state_activity=“” 是否被激活
           

以上描叙的屬性是我們開發中經常使用的,如有其它,請自行了解熟悉。由于該效果需要動态展示,這裡就把示例的XML貼出來,大家自己去玩玩就知道了:

歡迎關注公衆号

shape&selector