android中selector中的shape
2012-04-28 19:51
274 查看
当然除了使用drawable这样的图片外今天谈下自定义图形shape的方法,对于Button控件
Android上支持以下几种属性shape、gradient、stroke、corners等。
我们就以目前系统的Button的selector为例说下:
Java代码
1. <shape>
2. <gradient
3. android:startColor="#ff8c00"
4. android:endColor="#FFFFFF"
5. android:angle="270" />
6. <stroke
7. android:width="2dp"
8. android:color="#dcdcdc" />
9. <corners
10. android:radius="2dp" />
11.<padding
12. android:left="10dp"
13. android:top="10dp"
14. android:right="10dp"
15. android:bottom="10dp" />
16.</shape>
对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,
endColor为渐变结束的颜色,下面的angle是角度。接下来是stroke可以理解为边缘,corners
为拐角这里radius属性为半径,最后是相对位置属性padding。
对于一个Button完整的定义可以为:
Java代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <selector
3. xmlns:android="http://www.norkoo.com">
4. <item android:state_pressed="true" >
5. <shape>
6. <gradient
7. android:startColor="#ff8c00"
8. android:endColor="#FFFFFF"
9. android:angle="270" />
10. <stroke
11. android:width="2dp"
12. android:color="#dcdcdc" />
13. <corners
14. android:radius="2dp" />
15. <padding
16. android:left="10dp"
17. android:top="10dp"
18. android:right="10dp"
19. android:bottom="10dp" />
20. </shape>
21. </item>
22.
23. <item android:state_focused="true" >
24. <shape>
25. <gradient
26. android:startColor="#ffc2b7"
27. android:endColor="#ffc2b7"
28. android:angle="270" />
29. <stroke
30. android:width="2dp"
31. android:color="#dcdcdc" />
32. <corners
33. android:radius="2dp" />
34. <padding
35. android:left="10dp"
36. android:top="10dp"
37. android:right="10dp"
38. android:bottom="10dp" />
39. </shape>
40. </item>
41.
42. <item>
43. <shape>
44. <gradient
45. android:startColor="#ff9d77"
46. android:endColor="#ff9d77"
47. android:angle="270" />
48. <stroke
49. android:width="2dp"
50. android:color="#fad3cf" />
51. <corners
52. android:radius="2dp" />
53. <padding
54. android:left="10dp"
55. android:top="10dp"
56. android:right="10dp"
57. android:bottom="10dp" />
58. </shape>
59. </item>
60.</selector>
注意!提示大家,以上几个item的区别主要是体现在state_pressed按下或state_focused获
得焦点时,当当来判断显示什么类型,而没有state_xxx属性的item可以看作是常规状态下。
Android上支持以下几种属性shape、gradient、stroke、corners等。
我们就以目前系统的Button的selector为例说下:
Java代码
1. <shape>
2. <gradient
3. android:startColor="#ff8c00"
4. android:endColor="#FFFFFF"
5. android:angle="270" />
6. <stroke
7. android:width="2dp"
8. android:color="#dcdcdc" />
9. <corners
10. android:radius="2dp" />
11.<padding
12. android:left="10dp"
13. android:top="10dp"
14. android:right="10dp"
15. android:bottom="10dp" />
16.</shape>
对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,
endColor为渐变结束的颜色,下面的angle是角度。接下来是stroke可以理解为边缘,corners
为拐角这里radius属性为半径,最后是相对位置属性padding。
对于一个Button完整的定义可以为:
Java代码
1. <?xml version="1.0" encoding="utf-8"?>
2. <selector
3. xmlns:android="http://www.norkoo.com">
4. <item android:state_pressed="true" >
5. <shape>
6. <gradient
7. android:startColor="#ff8c00"
8. android:endColor="#FFFFFF"
9. android:angle="270" />
10. <stroke
11. android:width="2dp"
12. android:color="#dcdcdc" />
13. <corners
14. android:radius="2dp" />
15. <padding
16. android:left="10dp"
17. android:top="10dp"
18. android:right="10dp"
19. android:bottom="10dp" />
20. </shape>
21. </item>
22.
23. <item android:state_focused="true" >
24. <shape>
25. <gradient
26. android:startColor="#ffc2b7"
27. android:endColor="#ffc2b7"
28. android:angle="270" />
29. <stroke
30. android:width="2dp"
31. android:color="#dcdcdc" />
32. <corners
33. android:radius="2dp" />
34. <padding
35. android:left="10dp"
36. android:top="10dp"
37. android:right="10dp"
38. android:bottom="10dp" />
39. </shape>
40. </item>
41.
42. <item>
43. <shape>
44. <gradient
45. android:startColor="#ff9d77"
46. android:endColor="#ff9d77"
47. android:angle="270" />
48. <stroke
49. android:width="2dp"
50. android:color="#fad3cf" />
51. <corners
52. android:radius="2dp" />
53. <padding
54. android:left="10dp"
55. android:top="10dp"
56. android:right="10dp"
57. android:bottom="10dp" />
58. </shape>
59. </item>
60.</selector>
注意!提示大家,以上几个item的区别主要是体现在state_pressed按下或state_focused获
得焦点时,当当来判断显示什么类型,而没有state_xxx属性的item可以看作是常规状态下。
相关文章推荐
- Android开发:shape和selector和layer-list的(详细说明)
- Android: Selector 与 Shape 属性的一些基本用法
- Android-----使用Button特效 selector+shape
- Android Selector 与 Shape 基本用法
- Android_selector、shape
- 【Android进阶学习】shape和selector的结合使用
- Android常用控件之TextView、EditText、Shape外形资源、Selector选择器
- Android04-常用控件(TextView-EditText-Shape-Selector)
- Android之shape与selector实现圆角
- Android Selector和Shape的使用方法
- Android——shape和selector和layer-list的(详细说明 转)
- Android shape、selector的使用
- Android Selector 与 Shape 基本用法
- Android_selector、shape
- Android--shape、selector、layer-list
- Android之Selector与Shape的使用
- [Android UI] shape和selector的结合使用
- Android Selector 与 Shape 基本用法
- Android Selector 与 Shape 基本用法
- Android开发教程:shape和selector的结合使用