Android控件樣式美化之shape的使用

Android提供的控件外觀實在不怎麼好看,比如一個Button,一個EditText。那麼我們可以自定義這些控件的背景來達到美觀的效果。
常用的方法就是利用shape,shape聽起來是用來改變形狀的,它不但可以改變形狀,還可以改變好多東西。
下面就開始寫一個shape文件吧
我們右擊drawable選擇new一個Drawable resource file,我們會看到它第二行默認爲select,我們改成shape,寫好名字後點確定,這樣就完成了一個shape文件的創建,我們打開這個文件可以看到文件裏面只有shape一個根標籤。我們會陸續往裏面添加其他標籤。
這裏先提到shape標籤的一個屬性:

android:shape=”“

這個屬性可以設置控件的形狀,他有四個取值:

line 線形
oval 圓形
rectandle 矩形
ring 環形

這個屬性也可以不設置,不設置就會是默認形狀
接下來介紹shape標籤裏面可以放置的子標籤

當android:shape=”rectangle”或默認形狀時有5個子標籤可用:

solid 設置填充顏色
padding 設置內容與邊界的內邊距
gradient 設置漸變顏色
corners 設置圓角
stroke 設置邊框

  1. solid 設置填充色 該標籤只有一個屬性
    • android:color 設置顏色
  2. padding 設置內容與邊界的內邊距,可分別設置左右上下距離,有四個屬性
    • android:left 左邊距
    • android:right 右邊距
    • android:top 上邊距
    • android:bottom 下邊距
  3. gradient 設置漸變顏色,這個標籤屬性比較多
    • android:type 設置漸變類型
      取值有如下三個
      line 線性漸變
      radial 放射性漸變
      sweep 掃描漸變
    • android:startColor 設置漸變開始的顏色
    • android:endColor 設置漸變結束的顏色
    • android:centerColor 設置漸變中間的顏色
    • android:angle 漸變的角度,線性漸變時纔有效,必須是45的倍數,0表示從左到右,90表示從下到上
    • android:centerX 漸變中心的相對X座標,放射漸變時纔有效,在0.0到1.0之間,默認爲0.5,表示在正中間
    • android:centerY 漸變中心的相對X座標,放射漸變時纔有效,在0.0到1.0之間,默認爲0.5,表示在正中間
    • android:gradientRadius 漸變的半徑,只有漸變類型爲radial時才使用
    • android:useLevel 如果爲true,則可在LevelListDrawable中使用
  4. corners 設置圓角,可用屬性有5個
    • android:radius 圓角半徑,會被下面每個特定的圓角屬性重寫
    • android:topLeftRadius 左上角的半徑
    • android:topRightRadius 右上角的半徑
    • android:bottomLeftRadius 左下角的半徑
    • android:bottomRightRadius 右下角的半徑
  5. stroke 設置邊框,有4個可用屬性
    • android:color 描邊的顏色
    • android:width 描邊的寬度
    • android:dashWidth 設置虛線時的橫線長度
    • android:dashGap 設置虛線時的橫線之間的距離

當android:shape=”oval”時有5個子標籤可用:

solid 設置填充顏色
padding 設置內容與邊界的內邊距
gradient 設置漸變顏色
stroke 設置邊框
size 設置形狀大小

這裏新出來了一個標籤:
size 設置形狀大小,有兩個屬性可用
* android:width 設置寬度
* android:height 設置高度

當android:shape=”line”時有2個子標籤可用:

stroke 設置邊框
size 設置形狀大小

當android:shape=”ring”時就不止有子標籤可以用了,還有一些shape根標籤的屬性可以用,我們先看看這些屬性:

  1. android:innerRadius 內環的半徑
  2. android:innerRadiusRatio 浮點型,以環的寬度比率來表示內環的半徑,默認爲3,表示內環半徑爲環的寬度除以3,該值會被android:innerRadius覆蓋
  3. android:thickness 環的厚度
  4. android:thicknessRatio 浮點型,以環的寬度比率來表示環的厚度,默認爲9,表示環的厚度爲環的寬度除以9,該值會被android:thickness覆蓋
  5. android:useLevel 一般爲false,否則可能環形無法顯示,只有作爲LevelListDrawable使用時才設爲true

可用子標籤:

solid 設置填充顏色
gradient 設置漸變顏色
stroke 設置邊框

好了,這些就是我知道的shpae的用法了,以後學到更多的時候還會過來更新~

發佈了146 篇原創文章 · 獲贊 52 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章