Android开发 之 线性渲染 LinearGradient

本文详细探讨了Android开发中线性渲染的概念,重点解析了LinearGradient的使用和实现原理,帮助开发者掌握这一关键的图形绘制技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性渲染LinearGradient

LinearGradient有两个构造函数
第一个:
public LinearGradient(float x0, float y0, float x1, float y1,int color0, int color1, TileMode tile)
前四个参数是区域,从开始点,到结束点
color0就是起始颜色,color1就是终止颜色;颜色值必须使用0xAARRGGBB形式的16进制表示!表示透明度的AA一定不能少。
TileMode tile:与BitmapShader一样,用于指定控件区域大于指定的渐变区域时,空白区域的颜色填充方法。

第二个构造函数:
LinearGradient(float x0, float y0, float x1, float y1,int colors[], float positions[], TileMode tile)
同样,(x0,y0)就是起始渐变点坐标,参数中(x1,y1)就是结束渐变点坐标 
colors[]用于指定渐变的颜色值数组,同样,颜色值必须使用0xAARRGGBB形式的16进制表示!表示透明度的AA一定不能少。 
positions[]与渐变的颜色相对应,取值是0-1的float类型,表示在每一个颜色在整条渐变线中的百分比位置


例如:自定义一个view使用onDraw方法画一个矩形
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        mPaint.setShader(new LinearGradient(0,getHeight()/2,getWidth(),getHeight()/2,0xffff0000,0xff00ff00, Shader.TileMode.CLAMP));
        canvas.drawRect(0,0,getWidth(),getHeight(),mPaint);
    }
这里使用的第一中构造,显示两种颜色的渐变,如果多重就吧颜色变成颜色数组。
这里渐变区域为高的一半,如果渐变区域小于view的尺寸,多余空白怎么填充呢??这里就要介绍构造方法中的最后一个参数的作用了
有三种情况:
第一种:TileMode.CLAMP 空白区挨着的最后一种颜色去填充
第二种:TileMode.REPEAT     重复填充以前的渐变色
第三种:TilmMode.MIRROR 镜像填充

第二种构造方法中的的倒数第二个参数position[]:
这个是控制每种颜色的渐变比例的,和颜色一一对应,不能多也不能少,不然直接报错。


这个类的应用场景:
先画一个渐变图像,如果这个渐变图形位移起来是什么样子呢?
字体颜色的渐变效果,就是一个线性渲染+移动形成的效果。详细查看下面的连接
http://blog.youkuaiyun.com/z_x_qiang/article/details/77895083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值