shape 绘制的渐变色使用的 gradient 默认是从左向右的方向绘制的

比如:

1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:centerColor="@android:color/holo_blue_light"
android:endColor="@android:color/holo_orange_dark"
android:startColor="@android:color/holo_red_dark" />
</shape>

效果图如下:

如果想让绘制从上往下也就是绘制角度的转变

现在的起点是红色的,如果角度变成90度那么红色的就变成了底部,如果为180红色的就变成后在右边

如果是270度刚好实现我们想要的效果,所以呢实现啊重现往下绘制渐变色需要角度为270度

代码如下:

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="270"
android:centerColor="@android:color/holo_blue_light"
android:endColor="@android:color/holo_orange_dark"
android:startColor="@android:color/holo_red_dark" />
</shape>

实现的效果:

当然我们也可以把角度写成-90 也是冲上往下绘制的效果

角度是逆时针走的,角度不同颜色的绘制方向不同,也就实现了不同方向的效果

有兴趣的可以自己试下其他的角度,

原文链接:
https://blog.csdn.net/qq_33210042/article/details/105610600