我正试图在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;
[...]
最后会显示图像的一些奇怪部分。
答案 0 :(得分:2)
在drawBitmap()
调用中,将第一个Rect参数设置为8,8,16,16,这是要绘制的位图的源矩形,将其设置为null以绘制整个位图。 / p>
如果要根据初始位图比例应用此边界,则可能需要在src矩形上应用相同的比例。
(尝试删除比例部分createScaledBitmap()
以查看你的src矩形是否在没有比例的情况下是好的;))