1

我正在尝试在ImageView. 我试过了,canvas.drawBitmap()但似乎显示了图像的错误部分。我的代码:

主要活动:

    this.drawCharacter = new DrawCharacter(1);
    this.bm = Bitmap.createBitmap(16, 32, Bitmap.Config.ARGB_8888);
    this.c = new Canvas(this.bm);
    this.c = this.drawCharacter.drawCharacter(this.c, this.characterBitmap);
    this.bm = Bitmap.createScaledBitmap(this.bm, this.imgWidth, this.imgHeight, isChild());

    this.imgv.setImageBitmap(this.bm);

绘制字符:

[...]
  Paint localPaint = new Paint();
  paramCanvas.drawBitmap(paramBitmap, new Rect(8, 8, 16, 16), new Rect(4, 0, 12, 8), localPaint);
  return paramCanvas;
[...]

最后显示了图像的一些奇怪部分。

4

1 回答 1

2

在您的drawBitmap()调用中,您将第一个 Rect 参数设置为 8、8、16、16,这是要绘制的位图中的源矩形,将其设置为 null 以绘制整个位图。

见文档

如果您想根据初始位图比例应用此边界,您可能需要在您的 src 矩形上应用相同的比例。(尝试删除比例部分,createScaledBitmap()看看你的 src 矩形是否没有比例好;))

于 2013-02-28T17:26:37.477 回答