1. 程式人生 > >android使用shape來繪製控制元件

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"
        />