我的自定义视图(指南针)中有很多绘制操作。我决定通过在onSizeChanged()
方法中在位图上绘制整个罗盘来优化它,而不是每次onDraw()
触发时直接绘制它。
以下是onDraw()
方法的一部分:
canvas.rotate(-heading, x, y);
canvas.drawBitmap(compassBitmap, 0f, compassBitmapY, compassBitmapPaint);
我的问题是轮换后会发生什么。位图失去了它的质量。
设置ANTI_ALIAS_FLAG
根本没有帮助。有没有办法解决这个问题,还是应该回到“更重”的实施?
答案 0 :(得分:0)
在不失去质量的情况下旋转图像是不可能的,它受到分辨率的限制。
需要重新计算每个像素位置,如果新目标不是(int,int),则需要将像素混合为最接近原始图像。