android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器

时间:2022-08-08 16:22:05

BitmapShader位图的图像渲染器

TileMode 模式

Shader.TileMode.CLAMP        边缘拉伸.
Shader.TileMode.MIRROR 在水平方向和垂直方向交替景象, 两个相邻图像间没有缝隙.
Shader.TileMode.REPEAT 在水平方向和垂直方向重复摆放,两个相邻图像间有缝隙缝隙.

构造方法

/**
* 调用这个来创建一个新的着色器,它将用一个位图绘制
* @param 用来做模板的 Bitmap 对象
* @param 横向的 TileMode
* @param TileMode。
*/
public BitmapShader(@NonNull Bitmap bitmap, @NonNull TileMode tileX, @NonNull TileMode tileY) {
this(bitmap, tileX.nativeInt, tileY.nativeInt);
}

简单使用 Shader.TileMode.REPEAT

    //Paint
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
//图片
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
paint.setShader(bitmapShader);
//绘制
canvas.drawRect(0,0,getWidth(),getHeight(),paint);
 

Shader.TileMode.CLAMP 效果

android 开发 View _13  绘制图片与BitmapShader位图的图像渲染器

Shader.TileMode.MIRROR 效果

android 开发 View _13  绘制图片与BitmapShader位图的图像渲染器

Shader.TileMode.REPEAT 效果

android 开发 View _13  绘制图片与BitmapShader位图的图像渲染器