Android shape属性详细整理

转载 2015年07月09日 23:43:25

有时候 ,为了满足一些需求,我们要用到 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"?>
    <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"?>
    <!-- 圆角 -->
    <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
    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
 
    <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"?>
    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"?>
  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"?>
  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 属性详细解析(mmp这波整理完以后都不用麻烦了)

Android shape 属性

  • 2015年07月08日 16:13
  • 1.75MB
  • 下载

Android shape 属性深入用法

  • 2016年11月13日 04:58
  • 25.53MB
  • 下载

android中通过自定义xml实现你需要的shape效果 xml属性配置

android中通过自定义xml实现你需要的shape效果 xml属性配置 分类: android2013-08-26 14:27 265人阅读 评论(0) 收藏 举报 android...

Android shape 属性介绍

前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net  ...
  • luckkof
  • luckkof
  • 2014年06月26日 17:35
  • 1564

android shape 属性详解

我们在做android UI开发时,经常会使用到各种各样的背景,很多情况下都是直接设置图片作为背景,背景图片过大,则会很影响内存,在这里我们可以使用shape来绘制一些实用的背景。shape是形状、模...

android中通过自定义xml实现你需要的shape效果 xml属性配置

在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片,然后在写一个selector的...

Android Shape 属性详解

Shape Drawable 这一类的shape定义在xml中 file location: res/drawable/filename.xml The filename is u...
  • jcy2sls
  • jcy2sls
  • 2014年12月09日 10:38
  • 360

实习入职第十六天:android:shape属性详解

这一类的shape定义在xml中 file location: res/drawable/filename.xml The filename is used as the resourc...

<shape> android 各属性介绍

转载:http://www.tuicool.com/articles/QR777fF
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android shape属性详细整理
举报原因:
原因补充:

(最多只允许输入30个字)