2017-05-30 25 views
0

我在自定义视图(指南针)中有很多绘制操作。我决定在onSizeChanged()方法中通过在位图上绘制整个指南针来优化它,而不是每次触发时都会直接绘制它。旋转画布后位图失去质量

这里是onDraw()方法的一部分:

canvas.rotate(-heading, x, y); 
canvas.drawBitmap(compassBitmap, 0f, compassBitmapY, compassBitmapPaint); 

我的问题是旋转后会发生什么。位图失去其质量。 设置ANTI_ALIAS_FLAG根本没有帮助。有没有办法解决这个问题,还是应该回到“较重”的实施?

回答

0

不可能在不失去质量的情况下旋转图像,它受分辨率的限制。

如果新的目标不是(int,int)像素需要混合以与原始图像最接近,则需要重新计算每个像素位置。

enter image description here enter image description here

http://homepages.inf.ed.ac.uk/rbf/HIPR2/rotate.htm