zoukankan      html  css  js  c++  java
  • Android学习—Shape

    Shape Drawable 
      An XML file that defines a geometric shape, including colors and gradients.一个定义几何形状的XML文件,包括颜色和渐变。

    简介  

      作用:XML中定义的几何形状

      位置:res/drawable/文件的名称.xml

      使用的方法:

        Java代码中:R.drawable.文件的名称

        layout中:android:background=”@drawable/文件的名称”

    属性

      <shape>  android:shape=[“rectangle” | “oval” | “line” | “ring”]

      其中,rectagle:矩形,oval:椭圆,line:水平直线,ring:环形

    子元素  

      <corners> :指定边角的半径,简单的说,数值越大角越圆,数值越小越趋近于直角,参数为:

          1. android:radius="integer"   

          2. android:topLeftRadius="integer"   <!--左上角-->

          3. android:topRightRadius="integer"  <!--右上角-->

          4. android:bottomLeftRadius="integer"   <!--右下角--> 

          5. android:bottomRightRadius="integer" <!--左下角-->

        android:radius直接指定4个角的半径,另外4个属性可以单独设置

      <gradient> :设置颜色渐变    

          1. android:angle="integer"    设置渐变的角度,数值必须为45的倍数,默认为0,即从左到右渐变。当值为90时,从下到上渐变,以此类推当值为180时,从右往左渐变; 为270时从上向下渐变。   

          2. android:centerX="integer"   渐变的水平中心点,值为0-1.0   

          3. android:centerY="integer"   渐变的垂直中心点,值为0-1.0   

          4. android:centerColor="integer"   中心的颜色,非必须   

          5. android:startColor="color"  开始渐变时的颜色  

          6. android:endColor="color"    结束渐变时的颜色   

          7. android:gradientRadius="integer"   渐变的半径,仅适用于android:type="radial"时;(径向渐变需要指定半径)

          8. android:type=["linear" | "radial" | "sweep"]   渐变的类型,分别为线状、中心放射状、经测试类似于雷达扫描的一种形态

          9. android:usesLevel=["true" | "false"]   貌似是可以被当做level-list用的意思

      <padding> :为内容或子标签设置边距,4个属性top、bottom、left、right,需要注意的是这个标签的作用是为内容与当前应用此shape的View的边距,而不是设置当前View与父元素的边距。

      <size>: 设置背景大小,width和height两个属性

      <solid> :只有一个属性,即color,设置整个背景的颜色,如果已经定义了渐变色,那么这个属性就无效了;

      <stroke>:描边,即设置边框    

          1. android:width="integer"   描边的宽度   

          2. android:color="color"    描边的颜色   

          3. android:dashWidth="integer"  必须与下面的dashGap搭配使用缺一不可,也就是说可以两个属性都不用,如果用,两个都必须得用。那么这哥俩有什么作用呢?   

          4. 原来是可以实现边框分段的效果,前者指定每段的长度后者指定两端之间的间隙或者说距离。 

          5. android:dashGap="integer"  

    实例:

    先看下面的代码: 
    复制到剪贴板 XML/HTML代码 
    <shape>  

       <!-- 实心 -->  
      <solid android:color="#ff9d77"/>  

       <!-- 渐变 -->  

      <gradient  
        android:startColor="#ff8c00"

        android:endColor="#FFFFFF"

        android:angle="270" />

      <!-- 描边 -->

      <stroke  
        android:width="2dp"  
        android:color="#dcdcdc" />

      <!-- 圆角 -->

      <corners

        android:topRightRadius="20dp" 右上角

        android:bottomLeftRadius="20dp" 右下角

        android:topLeftRadius="1dp" 左上角

        android:bottomRightRadius="0dp" 左下角

      /> 

      <padding  
        android:left="10dp"

        android:top="10dp"

        android:right="10dp"

        android:bottom="10dp" />

    </shape> 

     

    温故而知新,可以为师矣。
  • 相关阅读:
    Ceph实验室:第六课:Ceph运维之横向扩展
    Ceph实验室:第五课:Ceph运维之换盘
    百度2014软件开发工程师笔试题详解 (转)
    阿里巴巴2014笔试题详解(9月22北京)(转)
    阿里巴巴2014秋季校园招聘-软件研发工程师笔试题详解(转)
    腾讯的2014年校招的软开笔试题(转)
    typedef与define区别
    java流总结(转)
    java 流 复制,重命名,删除目录
    java 流 读
  • 原文地址:https://www.cnblogs.com/qiwenhui/p/android-shape.html
Copyright © 2011-2022 走看看