Android 颜色渲染(三) Shader颜色渲染

本文深入讲解了Android中颜色渲染的基本原理和技术实现,包括Shader类及其子类如BitmapShader、LinearGradient等的应用方法,并介绍了如何利用这些类实现颜色渐变、组合渲染等效果。

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

相信看过在上一篇中提到的三篇文章后,大家已经对颜色处理方面有更深的体会.

之前讲到颜色渐变的效果, 具体怎么做呢,这就需要应用颜色渲染. 首先要介绍Android Api中关于颜色渲染的几个重要的类:

Shader,BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient

看一下它们之间的关系:



publicclassShaderextendsObject
该类作为基类主要是返回绘制时颜色的横向跨度。其子类可以作用与Piant。通过paint.setShader(Shadershader);来实现一些渲染效果。之作用与图形不作用与bitmap。
构造方法为默认的构造方法。


枚举:
emunShader.TileMode


定义了平铺的3种模式:
staticfinalShader.TileModeCLAMP:边缘拉伸.


staticfinalShader.TileModeMIRROR:在水平方向和垂直方向交替景象, 两个相邻图像间没有缝隙.


StaticfinalShader.TillModeREPETA:在水平方向和垂直方向重复摆放,两个相邻图像间有缝隙缝隙.




方法:
1.booleangetLoaclMatrix(MatrixlocalM);如果shader有一个非本地的矩阵将返回true.
localM:如果不为null将被设置为shader的本地矩阵.
2.voidsetLocalMatrix(MatrixlocalM);

设置shader的本地矩阵,如果localM为空将重置shader的本地矩阵。


Shader的直接子类:

BitmapShader : 位图图像渲染

LinearGradient : 线性渲染

RadialGradient : 环形渲染

SweepGradient : 扫描渐变渲染/梯度渲染

ComposeShader : 组合渲染,可以和其他几个子类组合起来使用

是不是很像Animation及其子类的关系(AlphaAnimation,RotateAnimation,ScaleAnimation,TranslateAnimation, AnimationSet)

既有具体的渲染效果,也有渲染效果的组合


下面说下Shader的使用步骤:

1. 构建Shader对象

2. 通过Paint的setShader方法设置渲染对象

3.设置渲染对象

4.绘制时使用这个Paint对象





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值