android:shape的使用
来源:互联网 发布:多用户远程桌面软件 编辑:程序博客网 时间:2024/05/01 19:31
<shape><!-- 实心 --><solid android:color="#ff9d77"/><!-- 渐变 --><gradientandroid:startColor="#ff8c00"android:endColor="#FFFFFF"android:angle="270" /><!-- 描边 --><strokeandroid:width="2dp"android:color="#dcdcdc" /><!-- 圆角 --><cornersandroid:radius="2dp" /><paddingandroid:left="10dp"android:top="10dp"android:right="10dp"android:bottom="10dp" /></shape><shape><!-- 实心 --><solid android:color="#ff9d77"/><!-- 渐变 --><gradientandroid:startColor="#ff8c00"android:endColor="#FFFFFF"android:angle="270" /><!-- 描边 --><strokeandroid:width="2dp"android:color="#dcdcdc" /><!-- 圆角 --><cornersandroid:radius="2dp" /><paddingandroid:left="10dp"android:top="10dp"android:right="10dp"android:bottom="10dp" /></shape>
solid:实心,就是填充的意思
android:color指定填充的颜色
gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。 另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。
stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
Xml代码
<cornersandroid:topRightRadius="20dp" 右上角 android:bottomLeftRadius="20dp" 右下角 android:topLeftRadius="1dp" 左上角 android:bottomRightRadius="0dp" 左下角 /><cornersandroid:topRightRadius="20dp" 右上角android:bottomLeftRadius="20dp" 右下角android:topLeftRadius="1dp" 左上角android:bottomRightRadius="0dp" 左下角/>
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了
padding:间隔
这个就不用多说了,XML布局文件中经常用到。
大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:
Xml代码
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="TestShapeButton"android:background="@drawable/button_selector"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="TestShapeButton"android:background="@drawable/button_selector"/>
我们来看看main.xml代码:
Xml代码
<?xml version="1.0" encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true" ><shape><!-- 渐变 --><gradientandroid:startColor="#ff8c00"android:endColor="#FFFFFF"android:type="radial"android:gradientRadius="50" /><!-- 描边 --><strokeandroid:width="2dp"android:color="#dcdcdc"android:dashWidth="5dp" android:dashGap="3dp" /><!-- 圆角 --><cornersandroid:radius="2dp" /><paddingandroid:left="10dp"android:top="10dp"android:right="10dp"android:bottom="10dp" /></shape></item><item android:state_focused="true" ><shape><gradientandroid:startColor="#ffc2b7"android:endColor="#ffc2b7"android:angle="270" /><strokeandroid:width="2dp"android:color="#dcdcdc" /><cornersandroid:radius="2dp" /><paddingandroid:left="10dp"android:top="10dp"android:right="10dp"android:bottom="10dp" /></shape></item><item> <shape><solid android:color="#ff9d77"/><strokeandroid:width="2dp" android:color="#fad3cf" /> <corners android:topRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="0dp" android:bottomRightRadius="0dp" /> <paddingandroid:left="10dp"android:top="10dp"android:right="10dp"android:bottom="10dp" /></shape></item> </selector>
01.<shape>02. <!-- 实心 -->03. <solid android:color="#ff9d77"/>04. <!-- 渐变 -->05. <gradient06. android:startColor="#ff8c00"07. android:endColor="#FFFFFF"08. android:angle="270" />09. <!-- 描边 -->10. <stroke11. android:width="2dp"12. android:color="#dcdcdc" />13. <!-- 圆角 -->14. <corners15. android:radius="2dp" />16. <padding17. android:left="10dp"18. android:top="10dp"19. android:right="10dp"20. android:bottom="10dp" />21.</shape>
solid:实心,就是填充的意思
android:color指定填充的颜色
gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。
stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
复制到剪贴板 XML/HTML代码01.<corners
02.03. android:topRightRadius="20dp" 右上角04. android:bottomLeftRadius="20dp" 右下角05. android:topLeftRadius="1dp" 左上角06. android:bottomRightRadius="0dp" 左下角07./>
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。
padding:间隔
这个就不用多说了,XML布局文件中经常用到。
大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:
复制到剪贴板 XML/HTML代码01.main.xml:
02.<Button03. android:layout_width="wrap_content"04. android:layout_height="wrap_content"05. android:text="TestShapeButton"06. android:background="@drawable/button_selector"07. />08.>
button_selector.xml:
复制到剪贴板 XML/HTML代码01.<?xml version="1.0" encoding="utf-8"?>
02.<selector03. xmlns:android="http://schemas.android.com/apk/res/android">04. <item android:state_pressed="true" >05. <shape>06. <!-- 渐变 -->07. <gradient08. android:startColor="#ff8c00"09. android:endColor="#FFFFFF"10. android:type="radial"11. android:gradientRadius="50" />12. <!-- 描边 -->13. <stroke14. android:width="2dp"15. android:color="#dcdcdc"16. android:dashWidth="5dp"17. android:dashGap="3dp" />18. <!-- 圆角 -->19. <corners20. android:radius="2dp" />21. <padding22. android:left="10dp"23. android:top="10dp"24. android:right="10dp"25. android:bottom="10dp" />26. </shape>27. </item>28. <item android:state_focused="true" >29. <shape>30. <gradient31. android:startColor="#ffc2b7"32. android:endColor="#ffc2b7"33. android:angle="270" />34. <stroke35. android:width="2dp"36. android:color="#dcdcdc" />37. <corners38. android:radius="2dp" />39. <padding40. android:left="10dp"41. android:top="10dp"42. android:right="10dp"43. android:bottom="10dp" />44. </shape>45. </item>46. <item> 47. <shape>48. <solid android:color="#ff9d77"/>49. <stroke50. android:width="2dp"51. android:color="#fad3cf" />52. <corners53. android:topRightRadius="5dp"54. android:bottomLeftRadius="5dp"55. android:topLeftRadius="0dp"56. android:bottomRightRadius="0dp"57. />58. <padding59. android:left="10dp"60. android:top="10dp"61. android:right="10dp"62. android:bottom="10dp" />63. </shape>64. </item>65.</selector>
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- android:shape的使用
- 窝——(1)
- SCI咨询:如何查找期刊引用率
- eclipse tomcat设置
- 算法的时间复杂度和空间复杂度
- RAD Studio XE2新特性概览:多平台支持、原生iOS与Android、HD与3D动画及云
- android:shape的使用
- struts零配置的问题
- 面向对象和面向过程的区别
- DirectShow 深入浅出1
- adb shell dumpsys 命令
- ARM汇编伪指令
- Qt语言翻译工具的使用
- vim里面如何去掉文件最后一行的eol
- android上实现语音识别,基于google的语音识的简单例子.