我正在尝试在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;
[...]最后,显示了图像中一些奇怪的部分。
发布于 2013-03-01 01:26:37
在drawBitmap()调用中,将第一个Rect参数设置为8,8,16,16,这是要绘制的位图中的源矩形,将其设置为null以绘制整个位图。
see the documentation
如果要根据初始位图比例应用此边界,则可能需要在src矩形上应用相同的比例。(尝试删除缩放部分,createScaledBitmap()以查看您的源矩形在没有缩放的情况下是否良好;)
https://stackoverflow.com/questions/15141578
复制相似问题