Android原生绘图(十二):BitmapShader图像渲染

1,295 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

简介

BitmapShader时Paint.setShader中Shader的第四个实现类BitmapShader,前面三个都是渐变,BitmapShader使用图片当做shader,Paint画出的形状都是取自shader中的Bitmap。BitmapShader利用bitmap构建shader,绘制时利用bitmap进行绘制。

构造函数

/**
 * Call this to create a new shader that will draw with a bitmap.
 *
 * @param bitmap The bitmap to use inside the shader
 * @param tileX The tiling mode for x to draw the bitmap in.
 * @param tileY The tiling mode for y to draw the bitmap in.
 */
public BitmapShader(@NonNull Bitmap bitmap, @NonNull TileMode tileX, 
@NonNull TileMode tileY) ;

参数说明:
Bitmap:构造shader使用的bitmap
tileX:X轴方向的TileMode,
tileY:Y轴方向的TileMode。

利用BitmapShader绘制出整个图片

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.redbag);
BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
mPaint.setShader(bitmapShader);
canvas.drawRect(0, 0, 1000, 15å00, mPaint);

形状BitmapShader

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.redbag);
BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
mPaint.setShader(bitmapShader);
canvas.drawCircle(500, 500, 400, mPaint);

\