最近在Android官网发现一个有趣的组件,它能够通过代码动态实现shape
标签。为什么想要使用这种控件呢?因为在日常开发当中,随着UI界面shape文件越来越多了,这个组件可以减少shape文件,但是我们需要通过自定义View来实现。
java.lang.Object
> android.graphics.drawable.Drawable
> android.graphics.drawable.GradientDrawable
从上面的代码块可以看出,GradientDrawable是继承了Drawable的。
GradientDrawable的XML属性
1.设置渐变的角度,仅用于线性渐变。
android:angle
2.渐变形状内的底部填充量。
android:bottom
3.控件中间的颜色。
android:centerColor
4.可以选择的中间的颜色。
android:centerColor
5.形状内渐变中心点的 X 位置,作为宽度的一部分。
android:centerX
6.形状内渐变中心点的 Y 位置,作为高度的一部分。
android:centerY
7.渐变形状的纯色。
android:color
8.渐变的结束颜色。
android:endColor
9.渐变的半径,仅用于径向渐变。
android:gradientRadius
10.渐变形状的高度。
android:height
11.环的内半径。
android:innerRadius
12.环的内半径表示为环宽度的比率。
android:innerRadiusRatio
13.渐变形状内的左填充量。
android:left
14.渐变形状内的右填充量。
android:right
15.指示用渐变填充什么形状。
android:shape
16.指示用渐变填充什么形状。
android:shape
17.渐变的起始颜色。
android:startColor
18.渐变形状内的顶部填充量。
android:top
19.渐变类型。
android:type
20.指示 drawable 是否应该最初可见。
android:visible
21.渐变形状的宽度。
android:width
常量API
1.形状是一条线
LINE
2.渐变是线性的(默认。)
LINEAR_GRADIENT
3.形状是椭圆
OVAL
4.渐变是圆形的。
RADIAL_GRADIENT
5.形状是矩形,可能带有圆角
RECTANGLE
6.形状是圆环。
RING
虽然网上有很多开源的第三方库可以也可以帮我们实现类似于GradientDrawable的效果,但是我们可以通过这篇文章学习GradientDrawable
组件,在实现自定义View的时候有更多的思路。
网友评论