想美化一下程序裡的EditText,發現網上關於美化的文章較少,即使有也大多是直接翻譯文檔,索性一邊研讀一邊寫例子。
先看一下文檔對Shape Drawable的描述:
ShapeDrawable
. 一個定義幾何形狀的XML文件,包括顏色和漸變。創建一個ShpeDrawable對象
和其它drawable文件一樣,在drawable目錄下創建xml文件,以<shape>為根元素,有兩個重要屬性
1、xmlns:android="http://schemas.android.com/apk/res/android" 這個不說了,必填
2、android:shape 定義shape的形狀有4個值"rectangle"
,"oval"
,"line",
"ring"
分別是矩形、橢圓、線型和環形,一般用的較多的是前兩種
shape元素下的其它屬性均僅適用於android:shape="ring"時。
Shape的子元素包括
<corners><gradient>
<padding>
<size>
<solid>
<stroke><corners>指定邊角的半徑,簡單的說,數值越大角越圓,數值越小越趨近於直角,參數為:
- android:radius="integer"
- android:topLeftRadius="integer"
- android:topRightRadius="integer"
- android:bottomLeftRadius="integer"
- android:bottomRightRadius="integer"
android:radius直接指定4個角的半徑,另外4個屬性可以單獨設置4個角的角度
<gradient>的作用是設置顏色漸變,有以下屬性
<padding>是為內容或子標簽設置邊距,4個屬性top、bottom、left、right,需要注意的是這個標簽的作用是為內容設置與當前應用此shape的View的邊距,而不是設置當前View與父元素的邊距。
<size>就不用說了,設置背景大小,width和height倆屬性。
<solid
>只有一個屬性,即color,設置整個背景的顏色,如果已經定義了漸變色,那麼這個屬性就無效了。
<stroke>
描邊,即設置邊框
- <span style="font-size:16px;"> android:width="integer" 描邊的寬度
- android:color="color" 描邊的顏色
- android:dashWidth="integer" 必須與下面的dashGap搭配使用缺一不可,也就是說可以兩個屬性都不用,如果用,兩個都必須得用。那麼這哥倆有什麼作用呢?
- 原來是可以實現邊框分段的效果,前者指定每段的長度後者指定兩端之間的間隙或者說距離。
- android:dashGap="integer" 上圖說明,如下,灰色部分為背景,黃綠色部分是邊框(好惡心的顏色啊,我隨便填了幾個數出來的)</span>
至此,關於Shape Drawable的大部分功能都介紹完了,快去做出自己的漂亮的UI吧。