Android Resource中有個shape類型得xml可以設置控件得形狀譬正,shape文件定義在drawable目錄中伏恐,且shape標簽必須為root element.官方推薦得標準寫法為:
<?xml version="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="float"
android:centerY="float"
android:centerColor="integer"
android:endColor="color"
android:gradientRadius="integer"
android:startColor="color"
android:type=["linear" | "radial" | "sweep"]
android:useLevel=["true" | "false"] />
<padding
android:left="integer"
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>
值得注意的是,在設置corners的時候,如果想要指定部分圓角从隆,需要將所有的topLeftRadius,topRightRadius,bottomLeftRadius,bottomRightRadius放在一個corners里面,如果每個都放在一個corners里面缭裆,最下面的將覆蓋最上面的。且:對于指定部分的圓角寿烟,官方文檔上有說明澈驼,需要設置一個radius,并且值需要大于1筛武,其它的如果想設置圓角的地方可以直接寫自己想要的值缝其,不想設置圓角的地方則設置為0dp,但是實際測試中發(fā)現(xiàn),不需要設置radius也可以徘六,(可能是測試的手機的api不對)内边。
Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to not be rounded, a work-around is to use android:radius to set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want rounded corners.
所以,在寫shape的時候待锈,需要注意的是將所有的圓角設置在一個corners里面漠其,否則會被覆蓋!