安卓之自定義按鈕(以及shape詳解)

2021-07-15 05:59:04 字數 2289 閱讀 5046

簡述:

我們知道安卓原生的按鈕實在是不堪入目,而面對市場的需求,這麼醜的按鈕是沒有競爭力的,所以乙個可以自定義的好看的按鈕必不可缺。後面還有shape的屬性詳解彙總。

這個實現比較簡單,直接貼**了:

1.首先要在drawable資料夾裡面新增個樣式檔案shapecircle.xml

<?xml version="1.0" encoding="utf-8"?>

2.在button的background屬性裡面呼叫drawable下面的我們設定的樣式xml檔案

效果如圖(**只擷取了其中乙個按鈕的)

1.shape的形狀:

預設是矩形,但是我們可以進行設定,可以設定為矩形(rectangle)、橢圓形(oval)、線性形狀(line)、環形(ring)

其中環形ring有點特殊,一些屬性只有它可以用:

(1)android:innerradius 尺寸,內環的半徑

(2)android:innerradiusratio 浮點型,以環的寬度比率來表示內環的半徑

(3)android:thickness 尺寸,環的厚度

(4)android:thicknessratio 浮點型,以環的寬度比率來表示環的厚度,例如,如果android:thicknessratio=「2」,那麼環的厚度就等於環的寬度除以2。這個值是可以被android:thickness覆蓋的,預設值是3.

2.圓角屬性設定

android:radius 整型 半徑

android:topleftradius 整型 左上角半徑

android:toprightradius 整型 右上角半徑

android:bottomleftradius 整型 左下角半徑

3.內部顏色的填充

android:color 顏色值 填充顏色

4.漸變色設定

(1)android:startcolor 顏色值 起始顏色

(2)android:endcolor 顏色值 結束顏色

(3)android:centercolor 整型 漸變中間顏色,即開始顏色與結束顏色之間的顏色

(4)android:angle 整型 漸變角度(ps:當angle=0時,漸變色是從左向右。 然後逆時針方向轉,當angle=90時為從下往上。angle必須為45的整數倍)

(5)android:type [「linear」 | 「radial」 | 「sweep」] 漸變型別(取值:linear、radial、sweep); linear 線性漸變,這是預設設定;radial 放射性漸變,以開始色為中心。sweep 掃瞄線式的漸變。

(6)android:uselevel [「true」 | 「false」] 如果要使用levellistdrawable物件,就要設定為true。設定為true無漸變。false有漸變色

(7)android:gradientradius 整型 漸變色半徑.當 android:type=「radial」 時才使用。單獨使用 android:type="radial"會報錯。

(8)android:centerx 整型 漸變中心x點座標的相對位置

(9)android:centery 整型 漸變中心y點座標的相對位置

5.內邊距的設定,即比如文字跟邊的距離

android:left 整型 左內邊距

android:top 整型 上內邊距

android:right 整型 右內邊距

android:bottom 整型 下內邊距

6.尺寸大小(就是這個我們自己的樣式框大小)

size 大小

android:width 整型 寬度

android:height 整型 高度

7.描邊的設定,就是我們樣式的邊框

android:width 整型 描邊的寬度

android:color 顏色值 描邊的顏色

android:dashwidth 整型 表示描邊的樣式是虛線的寬度, 值為0時,表示為實線。值大於0則為虛線。

android:dashgap 整型 表示描邊為虛線時,虛線之間的間隔 即「 - - - - 」

安卓自定義屬性運用

1.reference 參考某一資源id。1 屬性定義 background format reference 2 屬性使用 android layout width 42dip android layout height 42dip android background drawable id 2...

安卓自定義view繪製尺寸

我們知道view在螢幕上顯示出來要先經過measure和layout.在呼叫onmeasure int widthspec,int heightspec 方法時,要涉及到measurespec的使用,measurespec有3種模式分別是unspecified,exactly和at most,那麼這...

安卓自定義XML屬性attrs

attrs看字面意思就是一組屬性的集合,那attrs有什麼用呢,在自定義view的時候,一般會自定義一些屬性,通過構造方法中attributeset引數的封裝,讓我們能夠獲取到為view配置的屬性。自定義屬性 1.定義對應的屬性 在values資料夾下新建乙個attar custom.xml檔案 f...