Drawable资源之shape drawable

用来在XML中定义shape。

文件位置:

res/drawable/filename.xml

这个文件名作为资源ID使用。

编译后的资源类型:

   资源指向GradientDrawable

资源引用方式:

   在Java中,R.drawable.filename

   在XML中,@[package:]drawable/filename

语法:

<?xml version="1.0"encoding="utf-8"?>
<shape
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape=["rectangle" | "oval" |"line" | "ring"] >
   <corners
        android:radius="integer"
       android:topLeftRadius="integer"
       android:topRightRadius="integer"
       android:bottomLeftRadius="integer"
       android:bottomRightRadius="integer" />
   <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:useLevel=["true" |"false"] />
   <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer"/>
   <size
        android:width="integer"
        android:height="integer"/>
   <solid
        android:color="color" />
   <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer"/>
</shape>

元素:

   <shape>

        这个shape drawable。必须作为根元素。

        属性:

        xmlns:android

        字符串。必须指定。定义这个XML的namespace,必须是

        “http://schemas.android.com/apk/res/android”

        android:shape

        关键字。定义了shape的类型。可用的值如下:

Value

Description

“rectangle”

将矩形填充到这个容器视图,默认值

“oval”

将椭圆填充到这个容器中。

“line”

铺满这个容器视图的一条横线。这个外观需要<stroke>元素来定义线的宽度。

“ring”

环形。

        只有当android:shape=”ring”时,下面属性才会被使用:

        android:innerRadius

        Dimension。内部环(中心点)的半径,dimension值或dimensionresource

        android:innerRadiusRatio

        Float。内部环的半径,占环宽度的比例。例如,如果android:innerRadiusRatio=”5”,那么内部半径就等于环的宽度除以5。这个值由android:innerRadius重写,默认值是9。

        android:thickness

        Dimension。环的厚度,dimension值或dimensionresource

        android:thicknessRatio

        Float。环的厚度,占环宽度的笔录。例如,如果android:thicknessRatio=”2”,那么这个厚度就等于环宽度除以2。值被android:innerRadius重写,默认为3。

        android:useLevel

        布尔值。如果这用作LevelListDrawable则为true。一般情况这项应该为”false”,否则你要的形状可能不会出现。

   <corners>

        为这个shape创建圆角。只有当形状为矩形时才能使用。

        属性:

        android:radius

        Dimension。所有角的半径,类型为dimension值或dimension resource。对于每个角可以通过下面的属性进行重写。

        android:topLeftRadius

        Dimension。左上角的半径,类型为dimension值或dimensionresource

        android:topRightRadius

Dimension。右上角的半径,类型为dimension值或dimensionresource

        android:bottomLeftRadius

Dimension。左下角的半径,类型为dimension值或dimensionresource

        android:bottomRightRadius

Dimension。右下角的半径,类型为dimension值或dimensionresource

注意:每个角(最初)必须提供大于1的半径,否则不会出现圆角。如果你不想将角指定为圆角,应急预案是用android:radius将每个角的半径设为大于1,然后用你想要的真实值再重写每个角,并且在你不想要圆角时将它设为0(“0dp”)。

<gradient>

   对这个形状指定渐变色。

   属性:

   android:angle

   Integer。渐变的角度,以度为单位。0为从左到右,90为从下到上。它必须是45的倍数。默认是0。

   android:centerX

   Float。X方向中心点的位置(0~1.0)。

   android:centerY

   Float。Y方向中心点的位置(0~1.0)。

   android:centerColor

   Color。来自开始和结束颜色之间的可选颜色,16进制数或color resource。

   android:endColor

   Color。结束时的颜色,16进制数或colorresource

   android:gradientRadius

   Float。渐变半径。只有当android:type="radial"时才使用。

   android:startColor

   Color。开始时的颜色,16进制数或colorresource

   android:type

   关键字。应用的渐变模式的类型,可用的值有:

Value

Description

“linear”

线性渐变,默认值

“radial”

径向渐变。开始颜色为中心颜色。

“sweep”

扫线渐变。

   android:useLevel

   Boolean。如果这用作LevelListDrawable时此项为true。

<padding>

   填充应用的容器视图(这会填充视图的内容,而不是形状)。

   android:left

   Dimension。左边距。dimension值或dimensionresource

   android:top

   Dimension。上边距。dimension值或dimensionresource

   android:right

   Dimension。右边距。dimension值或dimensionresource

   android:bottom

   Dimension。下边距。dimension值或dimensionresource

<size>

   形状的尺寸。

   属性:

   android:height

   Dimension。形状的高度。dimension值或dimensionresource

   android:width

Dimension。形状的宽度。dimension值或dimensionresource

注意:默认情况下,这个shape会等比例计算容器视图的尺寸来适应设置的尺寸。当你在ImageView中使用shape时,你能通过设置android:scaleType=”center”来限制计算类型。

<solid>

   填充到shape的颜色。

   属性:

   android:color

   Color。应用到shape的颜色。十六进制或colorresource

<stroke>

   这个shape的中线。

   属性:

   android:width

   Dimension。线条的厚度,dimension值或dimensionresource

   android:color

   Color。线条的颜色,十六进制或colorresource

   android:dashGap

   Dimension。线条破折号之间的距离,dimension值或dimensionresource。只有当android:dashWidth设置后才可用。

   android:dashWidth

   Dimension。每条破折线的尺寸,dimension值或dimensionresource。只有设置了android:dashGap后才可用。

例子:

保存在res/drawable/ gradient_box.xml中的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>

在布局XML中将这个shape drawable应用到视图上:

<TextView
   android:background="@drawable/gradient_box"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content" />

下方是通过代码获取shape drawable并将它应用到视图上:

Resources res = getResources();
Drawable shape = res.getDrawable(R.drawable.gradient_box);
 
TextView tv =(TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

SEE ALSO:

   ShapeDrawable

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值