Android Button 你真的會用嗎(含福利)?董栽?码倦?

Button在Android開發(fā)中可以說是無處不在,一般在xml中聲明锭碳,作為與用戶交互的常用組件袁稽,我們不僅僅讓其顯示和監(jiān)聽就覺得ok了,button還有很多其他有用和有趣的功能待你使用擒抛。

Button介紹


view繼承關(guān)系

從View繼承圖來看推汽,Button的父類是TextView,說明Button擁有TextView的屬性蝗柔,包括

android:drawableTop? ?上圖下文

android:autoLink? ? ? ? ? 超鏈接

android:inputType? ? ? ? 限制輸入類型

等等...?

?當(dāng)然這些都是最基本,接下來介紹更好玩的Button屬性設(shè)置

變化的Button

——selector

? 當(dāng)你希望Button按下會出現(xiàn)變化民泵,此時需要在android:background設(shè)置 a stateListDrawable癣丧,顧名思義,這是一個有一系列狀態(tài)的圖片資源栈妆,你需要在drawable目錄下定義這個xml文件胁编,如下:

?文件命名為 button_state.xml

<selector?xmlns:android="http://schemas.android.com/apk/res/android"

android:constantSize=["true"|"false"] ?//固定尺寸,默認(rèn)false

android:dither=["true"|"false"] ? ? ? ?// 縮略圖匹配當(dāng)前像素鳞尔,默認(rèn)true

android:variablePadding=["true"|"false"]> ?//匹配當(dāng)前padding嬉橙,默認(rèn)false

<item

android:drawable="@[package:]drawable/drawable_resource"

android:state_pressed=["true"|"false"]

android:state_focused=["true"|"false"]

android:state_hovered=["true"|"false"]

android:state_selected=["true"|"false"]

android:state_checkable=["true"|"false"]

android:state_checked=["true"|"false"]

android:state_enabled=["true"|"false"]

android:state_activated=["true"|"false"]

android:state_window_focused=["true"|"false"]/>

//當(dāng)以上某行為true,用戶交互切換到那個狀態(tài)時寥假,執(zhí)行action市框;


在layout.xml文件中,需要將button的background設(shè)置為如下:

<Button

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:background="@drawable/button_state"/>

---shape

但android開發(fā)中更多地是使用不同形狀的button(例如圓形圖糕韧,圓角矩形圖)枫振,此時就不是使用selector,而是使用shape關(guān)鍵字萤彩,代碼設(shè)置類似上面的selector粪滤,但它有自己的屬性:

<shape

xmlns:android="http://schemas.android.com/apk/res/android"

android:shape=["rectangle"|"oval"|"line"|"ring"]>

//一般用rectangle,將高和寬設(shè)置相等可以得到圓

<corners

android:radius="integer" ? ? ? ?//統(tǒng)一圓角半徑

android:topLeftRadius="integer"

android:topRightRadius="integer"

android:bottomLeftRadius="integer"

android:bottomRightRadius="integer"/>

<gradient

//背景顏色梯度變化,如為solid則沒有漸變

android:angle="integer"

android:centerX="integer"

android:centerY="integer"

android:centerColor="integer"

android:endColor="color"

android:gradientRadius="integer"

android:startColor="color"

android:type=["linear"|"radial"|"sweep"]

android:useLevel=["true"|"false"]/>

<padding

android:left="integer"

android:top="integer"

android:right="integer"

android:bottom="integer"/>

<size

android:width="integer"

android:height="integer"/>

<solid

android:color="color"/>

<stroke

android:width="integer"

android:color="color"

android:dashWidth="integer"

android:dashGap="integer"/>

在layout文件中設(shè)置請參考selector

傳送門:輕輕松松雀扶、半分鐘完成復(fù)雜的Button

button利器:Android Button Maker

當(dāng)然杖小,除了selector、shape,還有scale,transition 等模式愚墓,具體可參考android 官方 API指南:

Drawable Resources

? 最后提示一下剛踏進(jìn)android開發(fā)的小白同志予权,大神可以忽略:

button的監(jiān)聽可以在Java代碼設(shè)置button.setOnClickListener;也可以在xml中聲明android:onClick="selfDestruct",然后在代碼中設(shè)置

public void selfDestruct(Viewview){\\\\}

? 注意selfDestruct要一致

FloatingActonButton

作為Material Design 的特色組件浪册,fab具有很多動畫效果功能扫腺,如下圖所示


fab效果圖

fab繼承與ImageView,擁有ImageView的一切屬性议经,但它有自己的一個特性斧账,注意命名空間是 ? ? ? ?xmlns:app="http://schemas.android.com/apk/res-auto",下面介紹它的屬性:

app:backgroundTint - 設(shè)置FAB的背景顏色煞肾。

app:rippleColor - 設(shè)置FAB點(diǎn)擊時的背景顏色咧织。

app:borderWidth -該屬性尤為重要,如果不設(shè)置0dp籍救,那么在4.1的sdk上FAB會顯示為正方形习绢,而且在5.0以后的sdk沒有陰影效果。所以設(shè)置為borderWidth="0dp"。

app:elevation - 默認(rèn)狀態(tài)下FAB的陰影大小闪萄。

app:pressedTranslationZ - 點(diǎn)擊時候FAB的陰影大小梧却。

app:fabSize - 設(shè)置FAB的大小,該屬性有兩個值败去,分別為normal和mini放航,對應(yīng)的FAB大小分別為56dp和40dp。

src - 設(shè)置FAB的圖標(biāo)圆裕,Google建議符合Design設(shè)計(jì)的該圖標(biāo)大小為24dp广鳍。

app:layout_anchor - 設(shè)置FAB的錨點(diǎn),即以哪個控件為參照點(diǎn)設(shè)置位置吓妆。

app:layout_anchorGravity - 設(shè)置FAB相對錨點(diǎn)的位置赊时,值有 bottom、center行拢、right祖秒、left、top等舟奠。

參考:01 Material Design之FloatingActionButton的使用

? ? ? ? ?02?Android Developer Button

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竭缝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸭栖,更是在濱河造成了極大的恐慌歌馍,老刑警劉巖握巢,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晕鹊,死亡現(xiàn)場離奇詭異,居然都是意外死亡暴浦,警方通過查閱死者的電腦和手機(jī)溅话,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歌焦,“玉大人飞几,你說我怎么就攤上這事《榔玻” “怎么了屑墨?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纷铣。 經(jīng)常有香客問我卵史,道長,這世上最難降的妖魔是什么搜立? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任以躯,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忧设。我一直安慰自己刁标,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布址晕。 她就那樣靜靜地躺著膀懈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谨垃。 梳的紋絲不亂的頭發(fā)上吏砂,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音乘客,去河邊找鬼狐血。 笑死,一個胖子當(dāng)著我的面吹牛易核,可吹牛的內(nèi)容都是我干的匈织。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼牡直,長吁一口氣:“原來是場噩夢啊……” “哼缀匕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碰逸,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤乡小,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饵史,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體满钟,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年胳喷,在試婚紗的時候發(fā)現(xiàn)自己被綠了湃番。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡吭露,死狀恐怖吠撮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讲竿,我是刑警寧澤泥兰,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站题禀,受9級特大地震影響鞋诗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜投剥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一师脂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦吃警、人聲如沸糕篇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拌消。三九已至,卻和暖如春安券,著一層夾襖步出監(jiān)牢的瞬間墩崩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工侯勉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鹦筹,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓址貌,卻偏偏與公主長得像铐拐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子练对,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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