• Drawable学习之----ShapeDrawable


    一、元素属性

           元素:

    <shape>

    定义这是一个GradientDrawable,必须作为根元素。(ShapeDrawable gradientDrawable=(ShapeDrawable)textView.getBackground();这个时候会报错,只能转为GradientDrawable 

    属性:

    xmlns:android
    String类型。必须的,定义xml文件的命名空间,必须是"http://schemas.android.com/apk/res/android".
    android:shape
    关键字。定义shape的值,必须是下面的之一:
    描述
    "rectangle" 矩阵,这也是默认的shape
    "oval" 椭圆
    "line" 一条水平的直线。这种shape必须使用 <stroke> 元素来定义这条线的宽度
    "ring" 圆环。这种shape必须使用 <stroke> 元素来定义这条线的宽度

    下面的属性只有当 android:shape="ring"才使用:

    android:innerRadius
    尺寸。 内环的半径。一个尺寸值(dip等等)或者一个尺寸资源。
    android:innerRadiusRatio
    Float类型。这个值表示内部环的比例,例如,如果android:innerRadiusRatio = " 5 ",那么内部的半径等于环的宽度除以5。这个值会被android:innerRadius重写。 默认值是9。
    android:thickness
    尺寸。环的厚度,是一个尺寸值或尺寸的资源。
    android:thicknessRatio
    Float类型。厚度的比例。例如,如果android:thicknessRatio= " 2 ",然后厚度等于环的宽度除以2。这个值是被android:innerRadius重写, 默认值是3。
    android:useLevel

    Boolean类型。如果用在 LevelListDrawable里,那么就是true。如果通常不出现则为false。

    <corners>

    为Shape创建一个圆角,只有shape是rectangle时候才使用。

    属性:

    android:radius
    Dimension。圆角的半径。会被下面每个特定的圆角属性重写。
    android:topLeftRadius
    Dimension。top-left 圆角的半径。
    android:topRightRadius
    Dimension。top-right 圆角的半径。
    android:bottomLeftRadius
    Dimension。 bottom-left圆角的半径。
    android:bottomRightRadius
    Dimension。bottom-right圆角的半径。

    注意:每个圆角半径值都必须大于1,否侧就没有圆角。

                 下面的话不明白,我直接设置圆角为0就可以不圆了,其余的设置有圆角,一样的可行。不知道它为什么要这么讲。

    (If you want specific cornersto not be rounded, a work-around is to use android:radius to set a default cornerradius greater than 1, but then override each and every corner with the values you reallywant, providing zero ("0dp") where you don't want rounded corners.)

       

    <gradient>

    它与<solid>标签是互相排斥的,其中solid表示纯色填充,而gradient表示渐变效果

    指定这个shape的渐变颜色。

    属性:

    android:angle
    Integer。渐变的角度。 0 代表从 left 到 right。90 代表bottom到 top。必须是45的倍数,默认为0
    android:centerX
    Float。渐变中心的相对X坐标,在0到1.0之间。
    android:centerY
    Float。渐变中心的相对Y坐标,在0到1.0之间。
    android:centerColor
    Color。可选的颜色值。基于startColor和endColor之间。
    android:endColor
    Color。 结束的颜色。
    android:gradientRadius
    Float 。渐变的半径。只有在 android:type="radial"才使用
    android:startColor
    Color。开始的颜色值。
    android:type
    Keyword。渐变的模式,下面值之一:
    描述
    "linear" 线形渐变。这也是默认的模式
    "radial" 辐射渐变。startColor即辐射中心的颜色
    "sweep" 扫描线渐变。
    android:useLevel
    Boolean。如果在LevelListDrawable中使用,则为true

       <padding>

         内容与视图边界的距离

    属性:

    android:left
    Dimension。左边填充距离.
    android:top
    Dimension。顶部填充距离.
    android:right
    Dimension。右边填充距离.
    android:bottom
    Dimension。底部填充距离.

       <size>

    这个shape的大小。

    属性:

    android:height
    Dimension。这个shape的高度。
    android:width
    Dimension。这个shape的宽度。

    注意:默认情况下,这个shape会缩放到与他所在容器大小成正比。当你在一个ImageView中使用这个shape,你可以使用android:scaleType="center"来限制这种缩放。

       <solid>

    填充这个shape的纯色

    属性:

    android:color
    Color。颜色值,十六进制数,或者一个Color资源

       <stroke>

    这个shape使用的笔画,当android:shape="line"的时候,必须设置改元素。

    属性:

    android:width
    Dimension。笔画的粗细。
    android:color
    Color。笔画的颜色
    android:dashGap
    Dimension。每画一条线就间隔多少。只有当android:dashWidth也设置了才有效。
    android:dashWidth
    Dimension。每画一条线的长度。只有当 android:dashGap也设置了才有效。
  • 相关阅读:
    VSCode 设置 CPP 代码风格
    KiCad EDA 5.1.2 使用圆形板框时出现无法走线的问题
    oracle的sql优化
    mybatis 自动生成xml文件配置
    sql循环遍历
    XML
    oracle的concat的用法
    oracle 按某个字段查询重复数据
    Xshell 4的上传与下载
    Oracle之锁
  • 原文地址:https://www.cnblogs.com/vegetate/p/9997214.html
Copyright © 2020-2023  润新知