2018-02-02 安卓備忘:shape與selector復制粘貼庫~

這里總結(jié)一下shape與selector相關(guān)的屬性构舟,留作以后粘貼復制……洪碳。好吧,我承認我很懶~~

所謂狀態(tài)選擇器闪金,就是控件(view或者viewgroup)根據(jù)不同的選定狀態(tài)來定義不同的現(xiàn)實效果疯溺,我們可以在指定的狀態(tài)下,切換控件的背景屬性(background)哎垦,從而達到效果絢麗的目的囱嫩。

常用屬性:

屬性 狀態(tài)
android:drawable 放一個drawable資源
android:state_pressed 當前view是否被按下,如一個按鈕觸摸或者點擊漏设。
android:state_focused 官方解釋為當前view獲得焦點的時候墨闲,比如用戶選擇了一個文本框。
android:state_hovered 光標是否懸停郑口,通常與focused state相同鸳碧,它是4.0的新特性
android:state_selected 被選中盾鳞,它與focus state并不完全一樣,如一個list view 被選中的時候,它里面的各個子組件可能通過方向鍵,被選中了跑筝。
android:state_checkable 當前view是否可以被check。如:RadioButton是可以被check的推励。
android:state_checked 被checked了,如:一個RadioButton可以被check了肉迫。
android:state_enabled 當前view可以被點擊或者觸發(fā)觸摸事件的時候验辞,能夠接受觸摸或者點擊事件
android:state_activated 被激活,官方解釋是set when a view or its parent has been "activated" meaning the user has currently marked it as being of interest.
android:state_window_focused 當前view所在的窗體獲得焦點的時候喊衫,應用程序是否在前臺受神,當有通知欄被拉下來或者一個對話框彈出的時候應用程序就不在前臺了

有的需要加android:focusable和android:clickable為true才能獲取焦點

button_select.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/play_button"></item>
    <item android:state_focused="true" android:drawable="@drawable/play_button"></item>
    <item android:drawable="@drawable/button"></item>
</selector>  

常用checkbox設置:

<?xml version="1.0" encoding="UTF-8"?>
<selector  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false"
     android:state_enabled="true" 
     android:state_checked="true" 
     android:drawable="@drawable/btn_check_on" />
    <item android:state_window_focused="false"
     android:state_enabled="true" 
     android:state_checked="false" 
     android:drawable="@drawable/btn_check_off" />
    <item android:state_enabled="true" 
    android:state_checked="true" 
    android:state_pressed="true" 
    android:drawable="@drawable/btn_check_on_pressed" />
    <item android:state_enabled="true" android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/btn_check_off_pressed" />
    <item android:state_focused="true" 
    android:state_enabled="true" 
    android:state_checked="true"
    android:drawable="@drawable/btn_check_on_selected" />
    <item android:state_focused="true" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off_selected" />
    <item android:state_enabled="true"
     android:state_checked="false" 
     android:drawable="@drawable/btn_check_off" />
    <item android:state_enabled="true" 
     android:state_checked="true"
     android:drawable="@drawable/btn_check_on" />
</selector>

常用ImageButton設置:

<?xml version="1.0" encoding="UTF-8"?>
<selector  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button2_down" />
    <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/button2_over" />
    <item android:state_enabled="true" android:drawable="@drawable/button2" />
</selector>

常用Button設置:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/login_input" />
    <item android:state_pressed="true" android:drawable="@drawable/login_input" />
    <item android:state_focused="true" android:drawable="@drawable/input_over" />
</selector>

設置TextView

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:color="@color/gray" android:state_pressed="false" android:state_enabled="true"/>
    <item android:color="@color/white" android:state_pressed="true" android:state_enabled="true"/>
    <item android:color="@color/gray" android:state_enabled="false"/>
</selector>

drawble資源,才是狀態(tài)選擇器的重點格侯。首先,drawble資源比較復雜的時候财著,我們一般可以用.9patch圖片來替代联四,完美適配。但比較簡單的時候撑教,我們可以自己去寫背景的drawble資源的朝墩。那么,如何自定義一個drawble資源呢伟姐?下面來講講android下shape的使用收苏。
先來看例子:

<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="" >  
  
    <!-- 圓角 -->  
    <corners  
        android:radius="10dp"  
        android:topLeftRadius="" />  
    <!-- 描邊 -->  
    <stroke  
        android:dashGap=""  
        android:dashWidth=""  
        android:width="2dp"  
        android:color="@color/darkgray" />  
    <!-- 實心 -->  
    <solid android:color="#c4c4c4" />  
  
    <!-- 大小 -->  
    <size  
        android:height=""  
        android:width="" />  
    <!-- 顏色漸變 -->  
  
    <gradient  
        android:angle=""  
        android:centerColor=""  
        android:endColor=""  
        android:gradientRadius=""  
        android:startColor=""  
        android:type="" />  
</shape>  

首先是最開始的shape標簽。在shape里面有個shape屬性愤兵,這個屬性可以設定鹿霸,也可以不設定,不設定的時候默認是矩形秆乳。設定有四個值可以設定:
1懦鼠、rectangle 矩形
2、oval 橢圓形 當寬高設定為相同的時候屹堰,就是圓
3肛冶、line 線性形狀
4、ring 環(huán)形 可用作數(shù)據(jù)刷新時轉(zhuǎn)圈的提示
當設定為ring環(huán)形的時候扯键,還需要設定一下幾個屬性

 android:innerRadiusRatio="3"  //浮點型數(shù)據(jù)睦袖,以環(huán)的寬度比率來表示內(nèi)環(huán)的半徑
 android:thicknessRatio="8"    //浮點型數(shù)據(jù),以環(huán)的寬度比率來表示環(huán)的厚度
 android:useLevel="false"  //如果當做是LevlListDrawable使用時為true荣刑,其他為false

接下來定義在shape標簽里面的節(jié)點

<!-- 圓角 -->  
   <corners  
       android:radius="10dp"  
       android:topLeftRadius="" />  

這個表示圓角馅笙,可以一次性設定四個邊角的大小伦乔。也分個設定四個角度的大小,這里只寫了全部的和左上角的延蟹。

<!-- 描邊 -->  
<stroke  
   android:dashGap=""  
   android:dashWidth=""  
   android:width="2dp"  
   android:color="@color/darkgray" />  

這個表示描邊评矩,在邊界畫線。width表示線的厚度阱飘,color表示顏色斥杜,dashWidth和dashGap是用來畫虛線的時候用的,dashWidth表示虛線的寬度沥匈,dashGap表示虛線的間隔蔗喂。

<!-- 實心 -->  
  <solid android:color="#c4c4c4" />  

這個沒什么好說的。

<!-- 大小 -->  
 <size  
     android:height=""  
     android:width="" />  

<!-- 顏色漸變 -->    
 <gradient  
     android:angle=""  
     android:centerColor=""  
     android:endColor=""  
     android:gradientRadius=""  
     android:startColor=""  
     android:centerX=""  
     android:centerY=""  
     android:gradientRadius=""  
     android:type="" />  

顏色漸變需要好好講解一下高帖。
angle表示顏色漸變的起始位置缰儿,0表示從左向右然后逆時針方向,90表示從上到下散址,以此類推乖阵,angle必須為45點整數(shù)倍
startColor endColor centerColor,顏色 漸變 過程的顏色值预麸。
type,顏色漸變類型瞪浸,有三個值
1、linear吏祸,線性漸變对蒲,這個是默認值
2、radial贡翘,放射性漸變蹈矮,這個要配合android:gradientRadius屬性使用,android:gradientRadius表示放射漸變的半徑大小鸣驱。
3泛鸟、sweep,掃描石漸變踊东,就像雷達掃描的那個效果谈况。
centerX,centerY,表示漸變中心的X和Y點的坐標的相對位置。

先放到這里了递胧,有時間了再整理~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碑韵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缎脾,更是在濱河造成了極大的恐慌祝闻,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異联喘,居然都是意外死亡华蜒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門豁遭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叭喜,“玉大人,你說我怎么就攤上這事蓖谢∥嬖蹋” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵闪幽,是天一觀的道長啥辨。 經(jīng)常有香客問我,道長盯腌,這世上最難降的妖魔是什么溉知? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮腕够,結(jié)果婚禮上级乍,老公的妹妹穿的比我還像新娘。我一直安慰自己帚湘,他們只是感情好玫荣,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著客们,像睡著了一般。 火紅的嫁衣襯著肌膚如雪材诽。 梳的紋絲不亂的頭發(fā)上底挫,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音脸侥,去河邊找鬼建邓。 笑死,一個胖子當著我的面吹牛睁枕,可吹牛的內(nèi)容都是我干的官边。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼外遇,長吁一口氣:“原來是場噩夢啊……” “哼注簿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起跳仿,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤诡渴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后菲语,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妄辩,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡惑灵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了眼耀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片英支。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哮伟,靈堂內(nèi)的尸體忽然破棺而出干花,到底是詐尸還是另有隱情,我是刑警寧澤澈吨,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布把敢,位于F島的核電站,受9級特大地震影響谅辣,放射性物質(zhì)發(fā)生泄漏修赞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一桑阶、第九天 我趴在偏房一處隱蔽的房頂上張望柏副。 院中可真熱鬧,春花似錦蚣录、人聲如沸割择。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荔泳。三九已至,卻和暖如春虐杯,著一層夾襖步出監(jiān)牢的瞬間玛歌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工擎椰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留支子,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓达舒,卻偏偏與公主長得像值朋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子巩搏,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,870評論 25 707
  • Android中提供了shape形狀給我們使用昨登,我們可以通過shape畫出虛線、圓角贯底、漸變等多種效果篙骡,而且,sha...
    張文文同學閱讀 1,176評論 1 8
  • 最近有點亂了 想學的沒有學 想做的沒有做 最近有點亂了 工作沒有從容 生活過的被動 最近有點亂了 計劃都被擱淺 思...
    蠶豆?jié)裨?/span>閱讀 152評論 0 3
  • 第一次用德語寫影評,寫了好久糯俗,望指正其中諸多語法詞匯錯誤尿褪。 Ich bin Alex . Am 26. Augus...
    丑磊哥閱讀 630評論 0 1
  • 半夜了,下雨了……淅淅瀝瀝的得湘。感覺這一兩年的生活總是特別的忙杖玲,忙著生活周圍的事,很少有一個人靜靜的時光了√哉現(xiàn)在有時...
    12e1f5873a44閱讀 332評論 0 0