安卓 Shape 标签(简单图形绘制)

安卓 Shape 标签(简单图形绘制)

  Shape 是安卓 xml 资源文件里的一种常用标签,其文件通常存放于 drawable 下。通常用来绘制一些简单的背景图片:线,矩形,圆,圆环。还带有描边,圆角,颜色渐变的功能。
  一个简单的带圆角的 Shape 如下:

    



    
    
    
    
    

    
    


在这里插入图片描述
一个简单的例子如上,现在我们看一下 shape 标签里的一些常用的重要的属性

  • android:shape
    有四个值,用来指定绘制的形状。
    line:线
    rectangle:矩形
    oval:圆形
    ring:圆环

除圆环外有这一个标签就够了,但如果是圆环,则还有一些其他的属性需要设置。

  • android:innerRadius :内环的半径
  • android:thickness : 环的厚度
  • android:innerRadiusRatio : 浮点型,以环的宽度比率来表示内环的半径,宽度/半径
  • android:thicknessRatio : 浮点型,以环的宽度比率来表示环的厚度,厚度/半径

上述标签,
android:innerRadius 、 android:thickness
  这一组好理解,直接通过数值来指定圆环的半径及厚度。
android:innerRadiusRatio 、android:thicknessRatio
  这一组则是比例值来设置圆环的半径及厚度。
  例如 android:innerRadiusRatio=“1” 那么 表示 宽度/半径=1 即半径等于宽度。
补充,
android:useLevel
  如果为true,则可在LevelListDrawable中使用。有一次在使用时未设置这个值为true,圆环没有正常显示,虽然不清楚具体含义,但也明白了,需要设置这个值。

这里是属性,我们再看一下会用到的标签:

  • solid 标签(填充色)
    一个属性值,指定填充的颜色。


  • corners 标签(圆角)
    用于设置矩形四个角的弧度
    
    
    
  • stroke 标签(描边)
    width 指定图像描边宽度
    color 指定描边颜色

    
  • size 标签 (宽高)
    优先级低于控件设置的宽高,当外部控件设置宽高为 wrap_content 时生效。
    
  • padding 标签(内边距)
    优先级低于控件设置的内边距,效果与控件中设置内边距一致
    
    
  • gradient 标签(颜色渐变)
      定义了图形的渐变色,下面介绍几个属性标签 :
        1、android:type : 渐变类型,值有三个,默认值是linear。
           linear —— 线性渐变;
           radial —— 放射性渐变;
           sweep —— 扫描式渐变。
        2、android:angle : 渐变的角度,值必须是45的倍数。
        3、android:gradientRadius : 渐变的半径,只有当渐变类型为radial时才能使用。
        4、android:centerX 和 android:centerY : 渐变中心X和渐变中心Y的相对位置,值为0~1。
        5、android:startColor、android:centerColor 和 android:endColor : 定义渐变颜色。
    一些效果图如下:

安卓 Shape 标签(简单图形绘制)_第1张图片
  参考文章:Android开发——使用xml文件定义一个 drawable.
  Demo查看:gitHup.

你可能感兴趣的:(Android,[基础])