zoukankan      html  css  js  c++  java
  • Android Shape总结

    Shape的基础标签共有6个:corners, gradient, solid, stroke, padding, size

      1. Shape可以有四种形状:rectangle(矩形,默认形状),oval(椭圆形),ring(水平线),ring(环形)

      2. 关于corners标签:
        corners元素只适用于rectangle!
        总共有5个属性,一个总的圆角半径,或者四个角分别设置圆角半径,如果发生冲突,以该角单独设定的为准,与书写顺序无关。

      3. 关于solid/gradient标签: 这两个元素均表示填充颜色,故而会产生冲突。冲突的处理原则为,二选一,按照xml中的定义顺序,谁定义在后面,就选择谁,抛弃在前面定义的
        solid只有color这一个属性,即solid只能填充单一的纯色。
        关于gradient
        必选属性:startColor, endColor 起始颜色,终止颜色
        可以设置centerColor属性,即按照某一方位可以发生两次渐变
        type有3种取值,linear(线性变换,默认值), radial(径向,即像水波一样往外一圈圈扩散), sweep
        当type为linear时,一般也要设置渐变角度angle,默认为0,即从左往右。这是一个整数值,且必须为45的整数倍,90即从下往上,以此类推。可以超过360。
        当type为radial时,必须设置gradientRadius,即终结颜色最早出现的位置,距中心半径多少,从这一位置往外,就全是以终结颜色填充了。可选属性是centerX和centerY,是float型,取值0-1.0,默认0.5即中心位置。
        当type为sweep时,只能设置起始和结束颜色,而且渐变是固定从3点钟位置开始,按照顺时针方向渐变。

      4. 关于stroke标签 表示描边。共有4个属性:color, width, dashWidth, dashGap
        width表示描边的粗细,边的中心以shape的长宽实际边界为准,向两边扩散。
        dashWidth, dashGap表示以描边画成虚线,这两个属性必须成对出现,缺一不可,分别表示单段虚线的长度和每两段虚线的间隔。

      5. 关于size标签 仅用于定义长宽,只有width和height两个属性

      6. shape类型为ring时
        注意,在Android Studio上实时展示的ring似乎有问题
        一般情况下必须设置useLevel为false,否则环形无法显示。
        此时相比其他形状,多了4个独有的属性(直接写在根元素):innerRadius(Radio),thickness(Radio)
        当设置stroke时,内外两侧都会有描边;当设置solid/gradient时,只会填充环,内圆永远为空。

      7. shape对应于android.graphics.drawable.GradientDrawable类

  • 相关阅读:
    console.time测试代码块执行时间
    label表单的关联性
    attr返回被选元素的属性值
    2018 885程序设计编程题
    输出斐波拉数列的前n个数(n>=2)
    简单的光照贴图
    复杂纹理复制及纹理叠加效果
    简单纹理复制
    UV旋转shader
    shader实现积雪效果
  • 原文地址:https://www.cnblogs.com/zhinengfeiyu/p/5384174.html
Copyright © 2011-2022 走看看