首页 > 系统 > Android > 正文

Android中的Shape和Selector的结合使用实例

2019-10-24 21:12:40
字体:
来源:转载
供稿:网友

这篇文章主要介绍了Android中的Shape和Selector的结合使用实例,本文直接给出实例代码,需要的朋友可以参考下

一:在Android程序开发中

,我们经常会去用到Shape这个东西去定义各种各样的形状,首先我们了解一下Shape下面有哪些标签,都代表什么意思:

(1).solid:填充

android:color指定填充的颜色

(2).gradient:渐变

android:startColor和android:endColor分别为起始和结束颜色,

android:angle是渐变角度,必须为45的整数倍。

另外渐变默认的模式为android:type=”linear”,即线性渐变,

可以指定渐变为径向渐变,android:type=”radial”,径向渐变需要指定半径android:gradientRadius=”50”。

angle值对应的位置如图:

Android中的Shape和Selector的结合使用实例

(3).stroke:描边

android:width=”2dp” 描边的宽度,android:color 描边的颜色。

我们还可以把描边弄成虚线的形式,设置方式为:

android:dashWidth=”5dp”

android:dashGap=”3dp”

其中android:dashWidth表示'-‘这样一个横线的宽度,android:dashGap表示之间隔开的距离

(4).corners:圆角

android:radius为角的弧度,值越大角越圆。

我们还可以把四个角设定成不同的角度,同时设置五个属性,则Radius属性无效

android:Radius=”20dp” 设置四个角的半径

android:topLeftRadius=”20dp” 设置左上角的半径

android:topRightRadius=”20dp” 设置右上角的半径

android:bottomLeftRadius=”20dp” 设置右下角的半径

android:bottomRightRadius=”20dp” 设置左下角的半径

(5).padding:间隔

可以设置上下左右四个方向的间隔

二:代码如下:

(1).button_bg.xml如下:

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" > 
  3.  
  4. <!-- 渐变 --> 
  5. <gradient 
  6. android:endColor="#FFFFFF" 
  7. android:gradientRadius="50" 
  8. android:startColor="#ff8c00" 
  9. android:type="radial" /> 
  10.  
  11. <!-- 描边 --> 
  12. <stroke 
  13. android:dashGap="3dp" 
  14. android:dashWidth="5dp" 
  15. android:width="2dp" 
  16. android:color="#dcdcdc" /> 
  17.  
  18. <!-- 圆角 --> 
  19. <corners android:radius="5dp" /> 
  20.  
  21. <!-- 间隔 --> 
  22. <padding 
  23. android:bottom="10dp" 
  24. android:left="10dp" 
  25. android:right="10dp" 
  26. android:top="10dp" /> 
  27.  
  28. </shape> 

(2).shape_image.xml如下:

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" > 
  3.  
  4. <!-- 填充 --> 
  5. <solid android:color="#ff9d77" /> 
  6. <!-- 定义填充的颜色值 --> 
  7.  
  8.  
  9. <!-- 描边 --> 
  10. <stroke 
  11. android:width="2dp" 
  12. android:color="#fad3cf" /> 
  13. <!-- 定义描边的宽度和描边的颜色值 --> 
  14.  
  15.  
  16. <!-- 圆角 --> 
  17. <corners 
  18. android:bottomLeftRadius="5dp" 
  19. android:bottomRightRadius="5dp" 
  20. android:topLeftRadius="5dp" 
  21. android:topRightRadius="5dp" /> 
  22. <!-- 设置四个角的半径 --> 
  23.  
  24.  
  25. <!-- 间隔 --> 
  26. <padding 
  27. android:bottom="10dp" 
  28. android:left="10dp" 
  29. android:right="10dp" 
  30. android:top="10dp" /> 
  31. <!-- 设置各个方向的间隔 --> 
  32.  
  33. </shape> 

(3).button.xml如下:

 

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  3.  
  4. <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item> 
  5. <item android:drawable="@drawable/shape_image"></item> 
  6.  
  7. </selector> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表