Drawable资源--Shape的使用

网上找到关于Drawable资源的使用,在此感谢作者xirihanlin
http://www.cnblogs.com/xirihanlin/archive/2010/06/14/1758145.html的分享

 

Shape

 

定义在XML中的几何形状。

 

File Location

    res/drawable/filename.xml

    文件名将被当作资源ID使用。

Complied Resource Datatype

    指向ShapeDrawable的资源指针。

Resource Reference

    R.drawable.filenameJava

    @[package:]drawable/filenameXML

Syntax

<?xml version="1.0" encoding="utf-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android" 

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

    <gradient 

        android:angle="integer" 

        android:centerX="integer" 

        android:centerY="integer" 

        android:centerColor="integer" 

        android:endColor="color" 

        android:gradientRadius="integer" 

        android:startColor="color" 

        android:type=["linear" | "radial" | "sweep"

        android:usesLevel=["true" | "false"] /> 

    <solid 

        android:color="color" /> 

    <stroke 

        android:width="integer" 

        android:color="color" 

        android:dashWidth="integer" 

        android:dashGap="integer" /> 

    <padding 

        android:left="integer" 

        android:top="integer" 

        android:right="integer" 

        android:bottom="integer" /> 

    <corners 

        android:radius="integer" 

        android:topLeftRadius="integer" 

        android:topRightRadius="integer" 

        android:bottomLeftRadius="integer" 

        android:bottomRightRadius="integer" /> 

</shape>

Elements

    <shape>

              必须。必须是根元素。

    Attributes

              android:shape

                  Keyword。定义Shape的类型。有效的值包括:

Value

Desciption

"rectangle"

矩形。默认形状。

"oval"

椭圆。

"line"

水平直线。需要<stroke>元素定义线的宽度。

"ring"

环形。

 

接下来的特性只能在android:shape=”ring”时使用:

              android:innerRadius

                  Dimension。内环的半径。

              android:innerRadiusRatio

         Float。以环的宽度比率来表示内环的半径。例如,如果android:innerRadiusRatio=”5”,内环半径等于环的宽度除以5。这个值可以被android:innerRadius覆盖。默认值是9

              android:thickness

                  Dimension。环的厚度。

              android:thicknessRatio

          Float。以环的宽度比率来表示环的厚度。例如,如果android:thicknessRatio=”2”,厚度就等于环的宽度除以2。这个值可以被android:thickness覆盖。默认值是3

              android:useLevel

                  Boolean。“true”表示可以当作LevelListDrawable使用。一般都为“false”。

   

<gradient>

              Shape指定渐变色。

Attributes

              android:angle

Integer。渐变色的角度值。0表示从左到右,90表示从下到上。必须是45的倍数,默认是0

              android:centerX

                  Float。渐变色中心的X相对位置(0-1.0)。当android:type=”linear”时无效。

              android:centerY

                  Float。渐变色中心的Y相对位置(0-1.0)。当android:type=”linear”时无效。

              android:centerColor

                  Color。可选的颜色,出现在startend颜色之间。

              android:endColor

                  Colorend颜色。

              android:gradientRadius

                  Float。渐变色的半径。当android:type=”radial”时有效。

              android:startColor

                  Colorstart颜色。

android:type

                  Keyword。渐变色的样式。有效值为:

Value

Description

"linear"

线性渐变,默认值。

"radial"

环形渐变。start颜色是处于中间的颜色。

"sweep"

sweep渐变

              android:useLevel

                  Boolean。“true”表示可以当作LevelListDrawable使用。

   

<solid>

              填充shape的单一色。

Attributes

    android:color

                  Color。这个颜色会应用到shape上。

   

<stroke>

              shape的线形。

    Attributes

              android:width

                  Dimension。线的厚度。

              android:color

                  Color。线的颜色。

              android:dashGap

                  Dimension。间断线间的距离。仅在android:dashWidth设定时有效。

              android:dashWidth

                  Dimension。间断线的大小。仅在android:dashGap设定时有效。

 

    <padding>

              内部View元素的边距。

    Attributes

              android:left

                  Dimension。左内边距。

              android:top

                  Dimension。上内边距。

              android:right

                  Dimension。右内边距。

              android:bottom

                  Dimension。下内边距。

 

    <corners>

              shape创建圆角。当shape是一个矩形时有效。

    Attributes

              android:radius

                  Dimension。圆角的半径。会被下面的特性覆盖。

              android:topLeftRadius

                  Dimension。左上圆角半径。

              android:topRightRadius

                  Dimension。右上圆角半径。

              android:bottomLeftRadius

                  Dimension。左下圆角半径。

              android:bottomRightRadius

                  Dimension。右下圆角半径。

 

Examples

    XML文件保存在res/drawable/gradient_box.xml

 

<?xml version="1.0" encoding="utf-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android" 

    android:shape="rectangle"> 

    <gradient  

        android:startColor="#FFFF0000"  

        android:endColor="#80FF00FF" 

        android:angle="45"/> 

    <padding android:left="7dp"  

        android:top="7dp" 

        android:right="7dp"  

        android:bottom="7dp" /> 

    <corners android:radius="8dp" /> 

</shape>

    Layout XML将被当作ShapeDrawable应用到一个View上:

<TextView 

    android:background="@drawable/gradient_box" 

    android:layout_height="wrap_content" 

    android:layout_width="wrap_content" />

    代码中也可以获得ShapeDrawable,然后应用到View上:

Resources res = getResources(); 

Drawable shape = res. getDrawable(R.drawable.gradient_box); 

 

TextView tv = (TextView)findViewByID(R.id.textview); 

tv.setBackground(shape);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值