drawBitmap()绘制false部分

时间:2013-02-28 17:12:36

标签: java android bitmap android-canvas

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

MainActivity:

    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);

DrawCharacter:

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

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

1 个答案:

答案 0 :(得分:2)

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

see the documentation

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