Android中Shape Drawable在xml中的使用
阿新 • • 發佈:2018-12-24
關於Shape使用的官方文件:
Android中常常使用shape來定義控制元件的一些顯示屬性,下面是Shape中的所有屬性及一個簡單的示例:
[html] view plain copy print?- <?xmlversion="1.0"encoding="utf-8"?>
- <shape
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape=["rectangle" | "oval" | "line" | "ring"] >
-
<corners
- android:radius="integer"
- android:topLeftRadius="integer"
- android:topRightRadius="integer"
- android:bottomLeftRadius="integer"
- android:bottomRightRadius="integer"/>
- <gradient
- android:angle="integer"
- android:centerX="integer"
-
android:centerY
- android:centerColor="integer"
- android:endColor="color"
- android:gradientRadius="integer"
- android:startColor="color"
- android:type=["linear" | "radial" | "sweep"]
- android:useLevel=["true" | "false"] />
- <padding
-
android:left
- android:top="integer"
- android:right="integer"
- android:bottom="integer"/>
- <size
- android:width="integer"
- android:height="integer"/>
- <solid
- android:color="color"/>
- <stroke
- android:width="integer"
- android:color="color"
- android:dashWidth="integer"
- android:dashGap="integer"/>
- </shape>
下面是一個小示例:
main.xml檔案內容如下:
[html] view plain copy print?- <p><?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="<a href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</a>"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- android:paddingLeft="40dip"></p><p><Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/button_selector"
- android:text="TestShapeButton"/></p><p></LinearLayout></p>
button_selector.xml內容如下:
[html] view plain copy print?- <?xmlversion="1.0"encoding="utf-8"?>
- <selectorxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:state_pressed="true"><shape>
- <!-- 漸變 -->
- <gradientandroid:endColor="#FFFFFF"android:gradientRadius="50"android:startColor="#ff8c00"android:type="radial"/>
- <!-- 描邊 -->
- <strokeandroid:dashGap="3dp"android:dashWidth="5dp"android:width="2dp"android:color="#dcdcdc"/>
- <!-- 圓角 -->
- <cornersandroid:radius="2dp"/>
- <paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp"/>
- </shape></item>
- <itemandroid:state_focused="true"><shape>
- <gradientandroid:angle="270"android:endColor="#ffc2b7"android:startColor="#ffc2b7"/>
- <strokeandroid:width="2dp"android:color="#dcdcdc"/>
- <cornersandroid:radius="2dp"/>
- <paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp"/>
- </shape></item>
- <item><shape>
- <solidandroid:color="#ff9d77"/>
- <strokeandroid:width="2dp"android:color="#fad3cf"/>
- <cornersandroid:bottomLeftRadius="5dp"android:bottomRightRadius="0dp"android:topLeftRadius="0dp"android:topRightRadius="5dp"/>
- <paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp"/>
- </shape></item>
- </selector>
效果圖如下:
一般狀態:
按下狀態:
原文地址:http://blog.csdn.net/ygc87/article/details/7673587