android使用shape來繪製控制元件
在android中常使用shape來作為控制元件的背景,來實現對控制元件形狀的設計
shape的檔案 位於 drawable檔案中 在drawable目錄下 新增 任意檔名的xml檔案(myshape.xml)
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
</shape>
一 繪製圓角(corners標籤)
一般文字框 可以繪製為帶邊框的圓角邊框 預設的EditText沒提供這樣的演示
<!--
radius 設定4個角的半徑
其他 4個屬性 分別可以單獨設定4個角的半徑
solid 填充顏色
-->
<corners
android:radius="20dp" />
<solid android:color="@android:color/holo_orange_light"/>
在 佈局檔案 EditText 設定背景色為當前的myshape
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:background="@drawable/myshap"
android:hint="請輸入密碼" >
<requestFocus />
</EditText>
效果為:
二 修改邊框的樣式
預設EditText為 下邊框 有條線 樣式如下:
如果需要替換該藍色的線 可以通過shape繪製一條直線 替換它
myshape.xml檔案如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!--
solid 填充顏色為#97ec97
size 設定寬度為1000dp 足夠大 高度為 1dp的線
-->
<solid android:color="#97ec97"/>
<size android:height="1dp" android:width="1000dp" />
</shape>
在 佈局檔案 EditText 設定背景色為空(不要背景) 因為要畫的是下邊框 設定android:drawableBottom 為myshape
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:background="@null"
android:drawableLeft="@drawable/lock"
android:drawableBottom="@drawable/myshap"
android:hint="請輸入密碼" >
<requestFocus />
</EditText>
效果如下:
三 全部標籤的解釋
1 內邊距的舉例
<padding android:left="50dp" android:top="50dp"
android:right="10dp" android:bottom="30dp"/>
2 填充顏色
<solid android:color="@android:color/holo_orange_light"/>
3 如下表示 新增圓角 android:radius 為四個邊的半徑
<corners android:radius="20dp"/>
4 如下表示被繪製的圖形的寬度和高度 如果繪製的是 文字框的背景 相當於是繪製的文字框的寬度和高度
如果是繪製的某個邊框 就相當於邊框的寬度和長度
<size android:width="1000dp" android:height="200dp"/>
5 如下表示 描邊 邊框的顏色和邊框的粗細
<stroke android:color="@android:color/holo_green_dark" android:width="10dp"/>
如下表示漸變 android:startColor漸變的開始顏色 android:endColor漸變的結束顏色 android:angle表示漸變的角度
android:angle=0 表示從左往右漸變 逆時針算角度 比如 90度 就是 下往上漸變 180度就是從右往左漸變
<gradient android:startColor="@android:color/holo_blue_bright" android:endColor="@android:color/holo_red_light"
android:angle="90"
/>