1.Shape
简介

作用:XML中定义的几何形状

位置:res/drawable/文件的名称.xml

使用的方法:

Java代码中:R.drawable.文件的名称

XML中:Android:background="@drawable/文件的名称"

属性:

<shape> Android:shape=["rectangle" | "oval" | "line" | "ring"]

其中rectagle矩形,oval椭圆,line水平直线,ring环形

<shape>中子节点的常用属性:

<gradient>渐变

Android:startColor

起始颜色

Android:endColor

结束颜色

Android:angle

渐变角度,0从左到右,90表示从下到上,数值为45的整数倍,默认为0;

Android:type

渐变的样式 liner线性渐变 radial环形渐变 sweep

<solid >填充

Android:color

填充的颜色

<stroke >描边

Android:width

描边的宽度

Android:color

描边的颜色

Android:dashWidth

表示'-'横线的宽度

Android:dashGap

表示'-'横线之间的距离

<corners >圆角

Android:radius

圆角的半径 值越大角越圆

Android:topRightRadius

右上圆角半径

Android:bottomLeftRadius

右下圆角角半径

Android:topLeftRadius

左上圆角半径

Android:bottomRightRadius

左下圆角半径

<padding >填充

android:bottom="1.0dip"

底部填充

android:left="1.0dip"

左边填充

android:right="1.0dip"

右边填充

android:top="0.0dip"

上面填充

2.Selector
简介

根据不同的选定状态来定义不同的现实效果

分为四大属性:

android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

android:state_enabled是设置是否响应事件,指所有事件

另:

android:state_window_focused默认时的背景图片

引用位置:res/drawable/文件的名称.xml

使用的方法:
Java代码中:R.drawable.文件的名称
XML中:Android:background="@drawable/文件的名称"

[html]view plaincopy在CODE上查看代码片

  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <selectorxmlns:Android="http://schemas.android.com/apk/res/android">

  3. <!--默认时的背景图片-->

  4. <itemAndroid:drawable="@drawable/pic1"/>

  5. <!--没有焦点时的背景图片-->

  6. <item

  7. Android:state_window_focused="false"

  8. android:drawable="@drawable/pic_blue"

  9. />

  10. <!--非触摸模式下获得焦点并单击时的背景图片-->

  11. <item

  12. Android:state_focused="true"

  13. android:state_pressed="true"

  14. android:drawable="@drawable/pic_red"

  15. />

  16. <!--触摸模式下单击时的背景图片-->

  17. <item

  18. Android:state_focused="false"

  19. Android:state_pressed="true"

  20. Android:drawable="@drawable/pic_pink"

  21. />

  22. <!--选中时的图片背景-->

  23. <item

  24. Android:state_selected="true"

  25. android:drawable="@drawable/pic_orange"

  26. />

  27. <!--获得焦点时的图片背景-->

  28. <item

  29. Android:state_focused="true"

  30. Android:drawable="@drawable/pic_green"

  31. />

  32. </selector>



3.layer-list
简介:
将多个图片或上面两种效果按照顺序层叠起来
例子:

[html]view plaincopy在CODE上查看代码片

  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <layer-listxmlns:android="http://schemas.android.com/apk/res/android">

  3. <item>

  4. <bitmapandroid:src="@drawable/android_red"

  5. android:gravity="center"/>

  6. </item>

  7. <itemandroid:top="10dp"android:left="10dp">

  8. <bitmapandroid:src="@drawable/android_green"

  9. android:gravity="center"/>

  10. </item>

  11. <itemandroid:top="20dp"android:left="20dp">

  12. <bitmapandroid:src="@drawable/android_blue"

  13. android:gravity="center"/>

  14. </item>

  15. </layer-list>

[html]view plaincopy在CODE上查看代码片

  1. <ImageView

  2. android:layout_height="wrap_content"

  3. android:layout_width="wrap_content"

  4. android:src="@drawable/layers"/>


效果图:



4.最后

以上三个标签可以揉合到一块儿来使用,所要实现的效果就是上面三种标签的说明,比如下面这个例子:


[html]view plaincopy在CODE上查看代码片

  1. <selectorxmlns:android="http://schemas.android.com/apk/res/android">

  2. <itemandroid:state_pressed="true">

  3. <layer-list>

  4. <itemandroid:bottom="8.0dip">

  5. <shape>

  6. <solidandroid:color="#ffaaaaaa"/>

  7. </shape>

  8. </item>

  9. <item>

  10. <shape>

  11. <cornersandroid:bottomLeftRadius="4.0dip"android:bottomRightRadius="4.0dip"android:topLeftRadius="1.0dip"android:topRightRadius="1.0dip"/>

  12. <solidandroid:color="#ffaaaaaa"/>

  13. <paddingandroid:bottom="1.0dip"android:left="1.0dip"android:right="1.0dip"android:top="0.0dip"/>

  14. </shape>

  15. </item>

  16. <item>

  17. <shape>

  18. <cornersandroid:bottomLeftRadius="3.0dip"android:bottomRightRadius="3.0dip"android:topLeftRadius="1.0dip"android:topRightRadius="1.0dip"/>

  19. <solidandroid:color="@color/setting_item_bgcolor_press"/>

  20. </shape>

  21. </item>

  22. </layer-list>

  23. </item>

  24. <item>

  25. <layer-list>

  26. <itemandroid:bottom="8.0dip">

  27. <shape>

  28. <solidandroid:color="#ffaaaaaa"/>

  29. </shape>

  30. </item>

  31. <item>

  32. <shape>

  33. <cornersandroid:bottomLeftRadius="4.0dip"android:bottomRightRadius="4.0dip"android:topLeftRadius="1.0dip"android:topRightRadius="1.0dip"/>

  34. <solidandroid:color="#ffaaaaaa"/>

  35. <paddingandroid:bottom="1.0dip"android:left="1.0dip"android:right="1.0dip"android:top="0.0dip"/>

  36. </shape>

  37. </item>

  38. <item>

  39. <shape>

  40. <cornersandroid:bottomLeftRadius="3.0dip"android:bottomRightRadius="3.0dip"android:topLeftRadius="1.0dip"android:topRightRadius="1.0dip"/>

  41. <solidandroid:color="@color/setting_item_bgcolor"/>

  42. </shape>

  43. </item>

  44. </layer-list>

  45. </item>

  46. </selector>


更多相关文章

  1. 一个Android项目代码该怎么看
  2. Android热修复之替换原有classes.dex的源代码分析
  3. 《第一行代码--Android》学习笔记--第一章:开始起航:思路
  4. android有用代码片段(1)
  5. android视频截屏&手机录屏实现代码
  6. Android混淆代码
  7. Android热修复原理(一)热修复框架对比和代码修复
  8. 如何在Android上编写高效的Java代码
  9. Android冷启动实现app秒开的实现代码

随机推荐

  1. Android常用颜色表
  2. android webview 7.0 h5调用打电话解决方
  3. android ndk开发中char和unsigned char问
  4. Android(安卓)自定义Animation,使用Camera
  5. Android: An introduction to the Edify
  6. Android图片上传的工具类
  7. Android(安卓)使用Camera2 调用摄像头显
  8. android scrollview滑动时悬浮部分控件
  9. Android(安卓)复用自制的控件(2)
  10. Android(安卓)Toast 例子