大智收藏android基础@IT·程序猿

Android绘图之Shader

2016-07-08  本文已影响3302人  lavor

Android绘图之Shader


Shader是绘图过程中的着色器,它有五个子类:

它一般用在paint.setShader(shader)中,paint是一个Paint对象,shader是一个Shader对象。

1. BitmapShader


BitmapShader是用来做位图绘制时纹理的着色器,位图可以通过指定的平铺模式进行重复或者镜像。

BitmapShader的构造方法:

平铺模式有三种:

一般来说,当Canvas的宽度(高度)小于等于BitmapShader中Bitmap的宽度(高度),我们会使用Shader.TileMode.CLAMP模式,否则我们会使用Shader.TileMode.MIRROR或者Shader.TileMode.REPEAT模式。

可以很明显的看到当X轴和Y轴平铺模式都设置为BitmapShader.TileMode.CLAMP,Canvas的宽度(高度)大于BitmapShader中Bitmap的宽度(高度)时,绘制出来的图像比较丑,我们来看看Canvas的宽度(高度)小于等于BitmapShader中Bitmap的宽度(高度)时的绘图情况,这种情况下面我们一般可以将我们的图像剪切成各种形状,最常见的是将图像剪切成图像。

2. ComposeShader


ComposeShader是一个组合着色器,它通过Xfermode将两个着色器组合起来。

ComposeShader有两个构造方法:

3. LinearGradient


LinearGradient是线性渐变的着色器。

LinearGradient有两个构造方法:

利用LinearGradient实现一个从蓝色线性渐变到红色的圆形图:

4. RadialGradient


RadialGradient是径向渐变着色器。

RadialGradient有两个构造方法:

利用RadialGradient实现一个从蓝色径向渐变到红色的圆形图:

5. SweepGradient


SweepGradient是绕着一个中心点进行扫描的渐变着色器。

SweepGradient有两个构造方法:

利用SweepGradient实现一个从蓝色扫描渐变到红色的圆形图:

上一篇下一篇

猜你喜欢

热点阅读