2017-05-30 60 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