Shader
在Canvas绘制各种图形时,可以调用Paint.setShader(shader)方法来为Paint设置Shader,以绘制七彩缤纷的图形。Shader又是什么呢?Shader被称为着色器,它就像绘画使用的调料盘,放置了各色的颜料。在Canvas绘制任何图形时,Paint会从Shader中获取其颜色。
在官方文档中,从API 26开始,其构造方法已过期,不再推荐使用,而是由其子类代替。
Shader共有5个子类:BitmapShader、LinearGradient、RadialGradient、SweepGradient和ComposeShader。
BitmapShader
BitmapShader就是将位图作为纹理,以平铺的模式填充图形。位图可以设置平铺的模式 - 镜像或者重复。
BitmapShader的构造函数:
BitmapShader(Bitmap bitmap, Shader.TileMode tileX, Shader.TileMode tileY)
- bitmap: BitMap实例,它决定了以哪个BitMap作为着色器。
- tileX: 决定了X轴方向上以哪种模式来平铺。
- tileY:决定了Y轴方向上以哪种模式来平铺。
先来看原图,原图中有只小猴子: