Android drawable 颜色渐变

Android开发中,渐变色的使用少不了,小到图片背景,大到主题风格,一般为了统一UI直接给切好的背景图,虽然简单粗暴,但不可避免会增加APK的体积,倘若APP的主题风格要变动,那就要替换掉所有相关的图片资源,其实我们也可以用代码来实现颜色渐变:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape>
            <!--设置圆角大小-->
            <corners android:radius="10dp"/>
            <!--设置背景颜色渐变-->
            <gradient
                android:startColor="#ffabb8c9"
                android:endColor="#ff6f84a3"
                android:centerColor="#ff00ffff"
                android:centerX="0.5"
                android:centerY="0.5"
                android:angle="90"/>
        </shape>
    </item>
</selector>
  1. shape节点配置的是图形的形式,主要包括方形、圆形等,上边代码为方形。
  2. gradient节点主要配置起点颜色、终点颜色及中间点的颜色、坐标、渐变效果(0,90,180从左到右渐变,270从上到下渐变)默认从左到右。
    注意:设置的角度只能是45度的倍数,否则会抛异常!
属性 概述
android:angle 设置渐变颜色的角度,必须是45的整数倍.
android:startColor 颜色渐变的开始颜色
android:endColor 颜色渐变的结束颜色
android:centerColor 颜色渐变的中间颜色
android:centerX Float.(0 - 1.0) 相对X的渐变位置。
android:centerY Float.(0 - 1.0) 相对Y的渐变位置。
android:gradientRadius Float. 渐变颜色的半径,单位是像素点. 需要 android:type=”radial”.
android:type “linear” 线性渐变.可以理解为 y=kx+b.
”radial” 圆形渐变,起始颜色从cenralX,centralY点开始。
”sweep” 以图像中心为圆点,顺时针旋转一周颜色渐变

3. corners节点配置圆角的半径。


渐变色效果如下:

angle=”0”
这里写图片描述

angle=”45”
这里写图片描述

angle=”90”
这里写图片描述

猜你喜欢

转载自blog.csdn.net/MakerCloud/article/details/82531949