小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
简介
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);
\