您的位置:首页 > 移动开发 > Android开发

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可以看作是常规状态下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: