Android中资源文件的Shape使用总结

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

solid:填充

android:color指定填充的颜色

gradient:渐变

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

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

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

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

angle值对应的位置如图:

stroke:描边

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

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

android:dashWidth="5dp"

android:dashGap="3dp"

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

corners:圆角

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

我们还可以把四个角设定成不同的角度,

同时设置五个属性,则Radius属性无效

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

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

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

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

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

padding:间隔

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

在这里我们来看一个简单的小例子,ShapDemo,在drawable文件夹下面先定义两个xml文件:

button_bg.xml的内容如下:

[html] view
plain
 copy

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

button_pressed_bg.xml的内容如下:

[html] view
plain
 copy

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

这里说明一点,在描边里面设置了dash参数,使得图形的边变成了虚线

在drawable文件夹下添加一个button.xml文件,内容如下:

[html] view
plain
 copy

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

这个文件的意思以前讲过,normal(正常)情况下就显示button_bg,被press(按下)情况下就显示button_pressed_bg。

我们再来看一下layout目录下的activity_main.xml的内容:

[html] view
plain
 copy

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" >
  5. <Button
  6. android:layout_width="wrap_content"
  7. android:layout_height="wrap_content"
  8. android:background="@drawable/button"
  9. android:text="TestShapeButton" />
  10. </RelativeLayout>

直接将background指定为drawable文件夹下的button.xml。

程序运行截图如下:

时间: 2024-10-12 07:30:31

Android中资源文件的Shape使用总结的相关文章

Android中资源文件中的字符串数组string-array简单用法

在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的strings.xml文件里,或是其他自定义的xml中都可以,以下操作方法相同. <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sports"> <item>足球<

[转]Android样式的开发:shape篇

转载自Keegan小钢原文链接:http://keeganlee.me/post/android/20150830 Android样式的开发:shape篇Android样式的开发:selector篇Android样式的开发:layer-list篇Android样式的开发:drawable汇总篇Android样式的开发:View Animation篇Android样式的开发:Property Animation篇Android样式的开发:Style篇 一个应用,应该保持一套统一的样式,包括Butt

Android:res之shape制作圆角、虚线、渐变

xml控件配置属性 android:background="@drawable/shape" 标签 corners ----------圆角gradient ----------渐变padding ----------内容离边界距离size ------------大小 solid ----------填充颜色stroke ----------描边 注意的是corners的属性bottomLeftRadius为右下角.bottomRightRadius为左下角 shape制作圆角 &l

Delphi编程中资源文件的应用

Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程序的一部分,程序要正常运行就离不了资源文件.但是它是不可执行代码. 为了更好地管理资源,Delphi中提供了一种.RES类型的

Android之Selector与Shape的使用

Selector: 在开发过程中,通常我们需要给控件增加点击的效果,效果如下: 默认效果                  点击效果    1.首先准备两张图片(默认和点击时的图片) 2.右击res文件夹,新建一个xml文件,在弹出的对话框中,Resource Type 选择Drawable,Root Element选择Selector,填入文件名(如:pressed_selector),点击完成,这时会在res文件夹中生成一个drawable文件夹存放我们创建的xml文件 3.xml代码如下:

Android样式的开发:shape篇

转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/android/20150830微信订阅号:keeganlee_me写于2015-08-30 Android样式的开发:shape篇Android样式的开发:selector篇Android样式的开发:layer-list篇Android样式的开发:drawable汇总篇Android样式的开发:View Animation篇Android样式的开发:Property Animation篇Andr

【Android小技巧】通过gradle给module中资源文件自动加上前缀

问题: 经常遇到不同的module,资源同名的问题,为了解决这种问题,可以给各个module的资源添加不同的前缀,gradle脚本配置如下: android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.and

Android代码中资源文件报错的调试

主要检查以下几项: 1.资源文件本身有没有错: 2.代码中导入的R有没有错: 3.R.java是否正确,里面有没有乱码或编码格式错误等: 4.有没有将本工程的is library勾上,如果本工程不是library project而又将此勾上的话,代码中的资源文件是有可能会报错的:

Android中xml中shape的属性助记

对于shape的一些属性老是忘记,每次都要去查找,为了方便我就自己记录下来,方便以后忘记了再查看这些属性. 在shape中有几个属性rectangle.oval.line.ring1.环形ring    在shape标签中把shape属性设置为ring类型    然后在shape标签中设置以下属性(这些属性只能在shape值为ring是使用)    android:innerRadius       内环的半径,尺寸单位是dp(不设置这个参数,会有个默认值)    android:thickne