有时候 ,为了满足一些需求,我们要用到 shape 去定义 一些背景,shape 的用法 跟图片一样 ,可以给View设置 android:background=”@drawable/shape”, 定义的shape 文件,放在 res/shape 目录下

通常我们可以用shape 做 button 的背景选择器,也可以做切换tab 时,底部的下划线。

先看我们用shape 都可以做什么

[XML] 纯文本查看 复制代码 ?
1 2 3 4 5 6 7 8 <? xml version = "1.0" encoding = "utf-8" ?> < shape xmlns:android = "http://schemas.android.com/apk/res/android" > < gradient android:type = "linear" android:angle = "0" android:endColor = "#F028A2" android:startColor = "#2A99F3" /> </ shape >
shape 都能做什么图

先看看shape 都能做什么图


shape下面 一共有6个子节点, 常用的 就只有 四个,padding 和size 一般用不到。

corners ———-圆角

gradient ———-渐变

padding ———-内容离边界距离

size ————大小

solid ———-填充颜色

stroke ———-描边


[XML] 纯文本查看 复制代码 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 <? xml version = "1.0" encoding = "utf-8" ?> < shape xmlns:android = "http://schemas.android.com/apk/res/android" > <!-- 圆角 --> < corners android:radius = "9dp" android:topLeftRadius = "2dp" android:topRightRadius = "2dp" android:bottomLeftRadius = "2dp" android:bottomRightRadius = "2dp" /> <!-- 设置圆角半径 --> <!-- 渐变 --> < gradient android:startColor = "@android:color/white" android:centerColor = "@android:color/black" android:endColor = "@android:color/black" android:useLevel = "true" android:angle = "45" android:type = "radial" android:centerX = "0" android:centerY = "0" android:gradientRadius = "90" /> <!-- 间隔 --> < padding android:left = "2dp" android:top = "2dp" android:right = "2dp" android:bottom = "2dp" /> <!-- 各方向的间隔 --> <!-- 大小 --> < size android:width = "50dp" android:height = "50dp" /> <!-- 宽度和高度 --> <!-- 填充 --> < solid android:color = "@android:color/white" /> <!-- 填充的颜色 --> <!-- 描边 --> < stroke android:width = "2dp" android:color = "@android:color/black" android:dashWidth = "1dp" android:dashGap = "2dp" /> </ shape >
shape 做虚线

拿shape 做虚线,shape 设置为line , stroke 是描边属性,其中 dashGap dashWidth 两个属性彼此一起存在才生效。

dashGap :两段之间的空隙宽度、dashWidth :一段线的宽度

[XML] 纯文本查看 复制代码 ?
1 2 3 4 5 6 7 8 < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "line" > < stroke android:dashGap = "3dp" android:dashWidth = "8dp" android:width = "1dp" android:color = "#009999" /> </ shape >
shape做渐变实线

拿shape做渐变实线

gradient 表示渐变

angle 渐变角度,45的倍数。

startColor endColor centerColor 起 止 中 的颜色


[XML] 纯文本查看 复制代码 ?
1 2 3 4 5 6 7 8 < shape xmlns:android = "http://schemas.android.com/apk/res/android" > < gradient android:type = "linear" android:angle = "0" android:endColor = "#F028A2" android:startColor = "#2A99F3" /> </ shape >
shape 做view背景选择器

shape 做view背景选择器


这里注意 ,item 的 state_pressed=true 是选择状态,按下,另一个不设置 就是 正常状态。

solid :是填充颜色

corners:设置 四个角的弧度


[XML] 纯文本查看 复制代码 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <? xml version = "1.0" encoding = "utf-8" ?> < selector xmlns:android = "http://schemas.android.com/apk/res/android" > < item android:state_pressed = "true" > < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "rectangle" > <!--填充色 --> < solid android:color = "#ffffff" /> <!-- 描边 --> <!-- dashGap:- 与- 虚线之间的间隔 dashWidth: 实线的宽度width: color:--> <!-- <stroke android:dashGap="10dp" android:dashWidth="5dp" android:width="1dip" android:color="#d3d3d3" /> --> <!-- 圆角 --> < corners android:topRightRadius = "10dp" android:bottomLeftRadius = "10dp" android:topLeftRadius = "10dp" android:bottomRightRadius = "10dp" /> </ shape > </ item > < item > <!--shape:oval 椭圆 rectangle:方形 line:线性--> < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "rectangle" > < gradient android:startColor = "#55B4FE" android:endColor = "#3d8FFB" android:type = "linear" /> <!-- 描边 --> <!-- <stroke android:dashGap="10dp" android:dashWidth="5dp" android:width="1dip" android:color="#d3d3d3" /> --> <!-- 圆角 上下左右四个角 弧度--> < corners android:topRightRadius = "10dp" android:bottomLeftRadius = "10dp" android:topLeftRadius = "10dp" android:bottomRightRadius = "10dp" /> </ shape > </ item > </ selector >
shape 做矩形

shape 做矩形


android:shape=”rectangle”选为矩形

[XML] 纯文本查看 复制代码 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <? xml version = "1.0" encoding = "utf-8" ?> < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "rectangle" > <!-- 渐变 --> < gradient android:type = "linear" android:startColor = "@android:color/holo_blue_bright" android:centerColor = "@android:color/holo_green_dark" android:endColor = "@android:color/holo_red_light" android:useLevel = "true" android:angle = "45" /> <!-- 填充 --> <!-- <solid android:color="@android:color/white"/>填充的颜色 --> <!-- 描边 --> < stroke android:width = "2dp" android:color = "@android:color/black" /> </ shape >
shape 作描边矩形 和 椭圆

shape 作描边矩形 和 椭圆

这里注意shape

android:shape=”oval” 椭圆


[XML] 纯文本查看 复制代码 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <? xml version = "1.0" encoding = "utf-8" ?> < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "rectangle" > <!-- 填充 --> < solid android:color = "@android:color/holo_blue_bright" /> <!-- 填充的颜色 --> <!-- 描边 --> < stroke android:width = "2dp" android:color = "@android:color/black" android:dashWidth = "1dp" android:dashGap = "2dp" /> < corners android:topLeftRadius = "20dp" android:topRightRadius = "20dp" android:bottomLeftRadius = "20dp" android:bottomRightRadius = "20dp" android:radius = "50dp" /> </ shape >
[XML] 纯文本查看 复制代码 ?
01 02 03 04 05 06 07 08 09 10 11 <? xml version = "1.0" encoding = "utf-8" ?> < shape xmlns:android = "http://schemas.android.com/apk/res/android" android:shape = "oval" > <!-- 填充 --> < solid android:color = "@android:color/holo_orange_light" /> <!-- 填充的颜色 --> <!-- 描边 --> < stroke android:width = "2dp" android:color = "@android:color/black" /> </ shape >

ShapeDemo代码:http://download.csdn.net/detail/u011733020/8880615

更多相关文章

  1. android圆角ImageView的几种实现方式
  2. 安卓第一行代码总结(一)
  3. Android(安卓)应用程序窗体显示状态操作(requestWindowFeature()
  4. Android(安卓)TextView setText卡顿问题
  5. 《第一行代码--Android》读书笔记之内容提供器
  6. Android获取其他包的Context实例然后做坏事
  7. String.format()在android中的应用
  8. Android特色开发之桌面组件
  9. Android2.2 API 中文文档系列(1) —— TextView

随机推荐

  1. Android 读取SIM卡参数
  2. android问题记录:Your project path conta
  3. Android(安卓)ORM框架GreenDao入门学习
  4. Android中图形参数及图形内存信息获取
  5. Android Java COOKIES
  6. android实现自动关机代码
  7. android 视频流的格式转换(YUV-RGB)
  8. android图片拖动
  9. Android 上层实现IPC通讯
  10. Ubuntu下使用Android(安卓)ADB