Android - 无法在 canvas 中绘制位图
Android - Can't draw a bitmap in a canvas
我有以下有效的代码:
protected void onDraw(Canvas canvas) {
canvas.drawRect(undoButtonRectF, buttonPaint);
canvas.drawPath(undoButtonArrow, buttonArrowPaint);
无论如何,当我将其与以下内容交换时:
protected void onDraw(Canvas canvas) {
undoButtonBitmap = Bitmap.createBitmap((int) undoButtonRectF.width(), (int) undoButtonRectF.height(), Bitmap.Config.ARGB_8888);
Canvas ca = new Canvas(undoButtonBitmap);
ca.drawRect(undoButtonRectF, buttonPaint);
ca.drawPath(undoButtonArrow, buttonArrowPaint);
canvas.drawBitmap(undoButtonBitmap, undoButtonRectF.left, undoButtonRectF.top, buttonPaint);
什么都没画。这怎么会发生?我以错误的方式使用位图吗?请帮帮我!!!
我想是协调器出错了。
错误是 undoButtonRectF 包含 "canvas" 的偏移量,而不是 "ca" 的偏移量,您应该在调用
之前调整或删除 top/left 偏移量
ca.drawRect(undoButtonRectF, buttonPaint);
ca.drawPath(undoButtonArrow, buttonArrowPaint);
对吗?
我有以下有效的代码:
protected void onDraw(Canvas canvas) {
canvas.drawRect(undoButtonRectF, buttonPaint);
canvas.drawPath(undoButtonArrow, buttonArrowPaint);
无论如何,当我将其与以下内容交换时:
protected void onDraw(Canvas canvas) {
undoButtonBitmap = Bitmap.createBitmap((int) undoButtonRectF.width(), (int) undoButtonRectF.height(), Bitmap.Config.ARGB_8888);
Canvas ca = new Canvas(undoButtonBitmap);
ca.drawRect(undoButtonRectF, buttonPaint);
ca.drawPath(undoButtonArrow, buttonArrowPaint);
canvas.drawBitmap(undoButtonBitmap, undoButtonRectF.left, undoButtonRectF.top, buttonPaint);
什么都没画。这怎么会发生?我以错误的方式使用位图吗?请帮帮我!!!
我想是协调器出错了。
错误是 undoButtonRectF 包含 "canvas" 的偏移量,而不是 "ca" 的偏移量,您应该在调用
之前调整或删除 top/left 偏移量 ca.drawRect(undoButtonRectF, buttonPaint);
ca.drawPath(undoButtonArrow, buttonArrowPaint);
对吗?