我试图在Android SDK中阅读示例FingerPaint,其中<strong> canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint)
在 onDraw()
中调用。
我对参数mBitmapPaint
感到困惑。当我更改mBitmapPaint
的设置时似乎没有效果。屏幕上绘制的位图样式仅取决于在其他位置定义的mPaint
的设置。谷歌的Android参考说明参数paint
可能为空,这是否意味着paint
这里没用?为什么在这个方法中加上paint参数?
宣布为:
public void drawBitmap(位图位图,向左浮动,浮动顶部,绘制颜料)
使用指定的颜色绘制指定的位图,其顶部/左角位于(x,y),由当前矩阵转换。
参数
- 位图要绘制的位图
- 左正在绘制位图左侧的位置
- 顶部正在绘制位图顶部的位置
- paint 用于绘制位图的绘制(可能为null)
以下是代码的一部分:
private Bitmap mBitmap;
private Canvas mCanvas;
private Path mPath;
private Paint mBitmapPaint;
mPaint = new Paint();
mPath = new Path();
mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
/*
* Set the styles of mPaint here
* ......
*/
// Settings of mBitmapPaint seem to make no difference
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(0xFFAAAAAA);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.drawPath(mPath, mPaint);
}
答案 0 :(得分:1)
Bitmap的绘制几乎没用,我认为适用于Bitmap的paint对象的唯一参数是AntiAliasing模式,默认情况下是打开的。我认为您也可以使用油漆作为黑白滤色镜,但在大多数情况下,您也可以使用null
。
答案 1 :(得分:0)
主要用于设置抗锯齿和双线性采样:
答案 2 :(得分:0)
实际上,{Bit {1}}仅适用于位图为Canvas.drawBitmap(Bitmap, Rect, Rect, Paint)
格式的绘画,但是。可以使用Bitmap.Config.ALPHA_8
随时随地轻松转换。对于应用了BitmapShader的Paint尤其有用。
没有足够提及,所以我想我将为这个老问题添加一个答案。