Android shape属性详细整理
来源:互联网 发布:哈工大威海怎么样 知乎 编辑:程序博客网 时间:2024/05/22 12:25
有时候 ,为了满足一些需求,我们要用到 shape 去定义 一些背景,shape 的用法 跟图片一样 ,可以给View设置 android:background=”@drawable/shape”, 定义的shape 文件,放在 res/shape 目录下
通常我们可以用shape 做 button 的背景选择器,也可以做切换tab 时,底部的下划线。
先看我们用shape 都可以做什么
<?
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下面 一共有6个子节点, 常用的 就只有 四个,padding 和size 一般用不到。
corners ———-圆角
gradient ———-渐变
padding ———-内容离边界距离
size ————大小
solid ———-填充颜色
stroke ———-描边
<?
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 设置为line , stroke 是描边属性,其中 dashGap dashWidth 两个属性彼此一起存在才生效。
dashGap :两段之间的空隙宽度、dashWidth :一段线的宽度
<
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做渐变实线
gradient 表示渐变
angle 渐变角度,45的倍数。
startColor endColor centerColor 起 止 中 的颜色
<
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背景选择器
这里注意 ,item 的 state_pressed=true 是选择状态,按下,另一个不设置 就是 正常状态。
solid :是填充颜色
corners:设置 四个角的弧度
<?
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 做矩形
android:shape=”rectangle”选为矩形
<?
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
android:shape=”oval” 椭圆
<?
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
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
- Android shape属性详细整理
- *Android shape属性整理
- android shape 属性详细用法
- android shape 属性详细解析(mmp这波整理完以后都不用麻烦了)
- 【样式】shape属性详细
- android shape 用法整理
- android shape图形整理
- android <shape>各个属性
- android:shape属性详解
- android shape的属性
- Android shape 属性介绍
- android:shape 属性
- android:shape属性详解
- android:shape属性详解
- Android shape属性介绍
- Android Shape 属性详解
- android:shape属性详解
- android shape 的属性
- 细说String和StringBuffer
- 查看PHP编译参数
- 关于计算器的简单实现
- 使用TCP协议的NAT穿透技术
- Python 3 抓取百度贴吧图片
- Android shape属性详细整理
- HDU 5206 Four Inages Strategy(几何题)
- Java基础之正则表达式
- iOS基础(c)—指针
- 浅析使用SAX解析XML
- DFS分布式文件系统及其部署
- android studio安装中的问题
- 随机数生成器
- 黑马程序员-----oc语言学习笔记之foundation-NSArray