Android Drawable--Shape

背景
继上一篇《Android Drawable Resources》,这里来分析shape的使用,值得注意的是此shape可以作为之前各Drawable里item的元素,所以可以让Drawable Resources更加多变。另外,shape所对应的java类是GradientDrawable,可通过线程动态改变其shape属性,实现绚丽的动画。



    
    
    
    
    
    

以上便是从官网摘来关于shape的所有属性,下面我们来一一介绍这些属性。

android:shape=["rectangle" | "oval" | "line" | "ring"]

rectangle:shape的默认是一个矩形;
oval:椭圆形;
line:一条线;
ring:一个环型;

没有定义android:shape时,默认显示一个矩形:



    

Android Drawable--Shape_第1张图片
1.jpg

定义android:shape为oval时,是一个圆形:



    

Android Drawable--Shape_第2张图片
2.jpg

定义android:shape为line时,是一条line:



    

Android Drawable--Shape_第3张图片
3.jpg

在定义android:shape为ring时,还需要定义其他属性才能显示,如:
android:innerRadius="50dp" 内环半径
android:innerRadiusRatio="5" 内环半径比例
android:thickness="10dp" 环的厚度
android:thicknessRatio="5" 厚度比例
android:useLevel="false" 如果不是用作LevelListDrawable,要设置为false,否则不能显示。



corner
只有shape是矩形rectangle才起作用,即可设置矩形的四个角为圆角


Android Drawable--Shape_第4张图片
4.jpg

gradient
指定一个渐变的颜色,用于填充button的颜色,貌似使用它之后,solid就失效了。

  
Android Drawable--Shape_第5张图片
5.jpg

android:angle 这是颜色渐变的角度,值只能是
0:从左到右
45:从左下到右上
90:从下到上
-45:从右上到左下
-90:从上到下
180:从右到左
剩下就不举例了,反正所有值都是45的倍数。

Android Drawable--Shape_第6张图片
6.jpg

android:centerX="0.1f"
android:centerY="0.1f"
只针对android:type为sweep或radial才起作用,即设置开始渐变在整个形状内的位置,值为0~1之间。

centerColor、startColor、endColor分别表示中间,开始、结尾的颜色。

    
Android Drawable--Shape_第7张图片
7.jpg

android:type的三个属性分别是:
linear:线性渐变
radial:辐射性渐变
sweep:横扫性渐变

Android Drawable--Shape_第8张图片
屏幕快照 2017-08-10 下午6.50.59.png



size
它是设置此shape的大小,如果在线程中改变此属性,shape会更趣,弄得我想写篇关于此动画的文章。




solid
填充的颜色,就一个android:color属性,没有其他。



stroke
设置shape的边框样式:

 
Android Drawable--Shape_第9张图片
8.jpg

你可能感兴趣的:(Android Drawable--Shape)