【发布时间】:2014-08-15 13:31:06
【问题描述】:
我试图在 Android SDK 中读取示例 FingerPaint,其中方法 canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint) 在 onDraw() 中调用。
我被参数mBitmapPaint弄糊涂了。当我更改mBitmapPaint的设置时,它似乎没有效果。在屏幕上绘制的位图样式仅取决于在其他地方定义的mPaint 的设置。 Google 的 Android Reference 说参数paint 可能为空,这是否意味着这里的paint 没用?为什么要在这个方法中放一个paint参数?
声明为:
public void drawBitmap(Bitmap bitmap,float left,float top,Paint paint)
使用指定的绘制绘制指定的位图,其上/左角在 (x,y),由当前矩阵转换。
参数
- 位图要绘制的位图
- left正在绘制的位图左侧的位置
- top 正在绘制的位图顶部的位置
- paint 用于绘制位图的paint(可能为空)
这里是部分代码:
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);
}
【问题讨论】:
-
例如你可以使用 xfer 模式
-
@pskink 谢谢 :)