Android Canvas.scale(),而不是四舍五入的数字



我正在缩放画布中的一些位图,遇到了一些问题。我有这张640x360的图片,想把它填充到屏幕上。我的屏幕是1196x720px,所以我必须将图像缩放1.86875 x 2.0倍。

代码是这样的:

canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.scale((float)(1.86875), (float)(2.0),0,0);
canvas.drawBitmap(this.backgroundMap, 0, 0, null);
canvas.restore();

图像在Y轴上的缩放比例是正确的,但它错了,我认为在X轴上有100个像素。你知道我该怎么解决这个问题吗?

谢谢你=)

不要使用缩放和drawBitmap,而是尝试使用以下方法:

canvas.drawBitmap(bitmap, src, dst, paint);

你可能应该这样称呼它:

canvas.drawBitmap(this.backgroundMap, null, new Rect(0, 0, 1196, 720), null);

最新更新