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类

  • 相关阅读:
    C语言面向对象编程(五):单链表实现(转)
    pthread_barrier_init,pthread_barrier_wait简介(转)
    Linux信号(signal) 机制分析(转)
    Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知(转)
    Linux 多线程环境下 进程线程终止函数小结(转)
    批量杀进程 ps awk grep
    C++中的INL(转)
    gdb调试多进程和多线程命令(转)
    转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
    转:全栈工程师的知识栈列表
  • 原文地址:https://www.cnblogs.com/zhinengfeiyu/p/5384174.html
Copyright © 2011-2022 走看看