博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Drawable系列(二)——ShapeDrawable的属性和使用介绍
阅读量:2059 次
发布时间:2019-04-29

本文共 1727 字,大约阅读时间需要 5 分钟。

本文为博主原创文章,转载请注明出处:

一、ShapeDrawable的属性汇总

二、ShapeDrawable的属性分类介绍

  • android: shape

    有4个选项,rectangle(矩形)oval(椭圆)line(横线)ring(圆环),默认为rectangle,需要注意line和ring需要通过标签来指定线的宽度和颜色等信息,否则无法达到预期效果

    针对ring这个形状有5个特殊属性

Value Desciption
android:innerRadius 圆环的内半径,和android:innerRadiusRatio同时存在时,以android:innerRadius为准
android:thickness 圆环厚度,即外半径减去内半径的大小,和android:thicknessRatio同时存在时,以android:thickness
android:innerRadiusRatio 内半径占整个Drawable宽度的比例,默认为9,如果为n,那么内半径 = 宽度/n
android:thicknessRatio 厚度占整个Drawable宽度的比例,默认为3,如果为n,那么厚度 = 宽度/n
android:useLevel 一般都应该使用false,否则有可能无法达到预期的显示效果,除非它被当作LevelListDrawable来使用
  • < stroke>
    1. Shape的描边有如下几个属性:
    2. android:color——描边的颜色
    3. android:width——描边的宽度,越大则shape的边缘线越粗
    4. android:dashWidth——组成虚线的线段的宽度
    5. android:dashGap——组成虚线的线段之间的间隔

需要注意:如果android:dashWidth和ndroid:dashGap有任何一个为0,那么虚线效果将不能生效

  • < corners>

    它只适用于矩形shape,表示矩形四个角的圆角程度,用px来表示,它有5个属性:

    1. android:radius—— 给四个角设置相同的角度,优先级较低,会被其他四个属性覆盖
    2. android:bottomLeftRadius——设定左下角的角度
    3. android:bottomRightRadius——设定右下角的角度
    4. android:TopLeftRadius——设定左上角的角度
    5. android:TopRightRadius——设定右上角的角度
  • < solid>

    表示纯色填充,通过android:color即可指定shape中填充的颜色

  • < gradient>

    它与标签是相互排斥的,其中solid表示纯色填充,而gradient表示渐变效果。它有如下几个属性:

    android:centerX——渐变的中心点横坐标

    android:centerY——渐变的中心点纵坐标
    android: startColor——渐变的起始颜色
    android:centerColor——渐变的中间颜色
    android:endColor——渐变的结束颜色
    android:gradientRadiu——渐变半径,仅当android:type=”radial”时有效
    android:useLevel——一般为false,当Drawable作为StateListDrawable使用时为false
    android:type——渐变的类别,有linear(线性渐变)、radial(径向渐变)、sweep(扫描线渐变)三种,默认值为linear
    android:angle——渐变的角度,默认为0,其值必须是45的倍数,0表示从左到右,90表示从下到上。具体对应的位置如下图所示

这里写图片描述

- < padding>

表示内边距,即包含它的View的空白。有如下四个属性:
  1. android:left
  2. android:top
  3. android:right
  4. android:bottom

    • < size>

    指shape的大小,一般不会用到。

三、效果图和核心代码展示:

这里写图片描述

xml代码如下:

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
[Kick Start 2020] Round A 2.Plates
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>