diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-03-22 10:08:28 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-03-22 10:44:31 +0100 |
| commit | 35aac9930fc3441fb2d0d627a077b9e9b7c73f80 (patch) | |
| tree | eb59b2afeeaeb78d8b05d967aa198f33d829ac48 /main/src/cgeo/geocaching/ui/CompassView.java | |
| parent | 5d66185b88a29abfee73d84d2a124f00060faf68 (diff) | |
| download | cgeo-35aac9930fc3441fb2d0d627a077b9e9b7c73f80.zip cgeo-35aac9930fc3441fb2d0d627a077b9e9b7c73f80.tar.gz cgeo-35aac9930fc3441fb2d0d627a077b9e9b7c73f80.tar.bz2 | |
Do not try to compute the reverse canvas rotation by hand
save() and restore() are more adequate to restore the initial state and
prevent rounding errors.
Diffstat (limited to 'main/src/cgeo/geocaching/ui/CompassView.java')
| -rw-r--r-- | main/src/cgeo/geocaching/ui/CompassView.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/ui/CompassView.java b/main/src/cgeo/geocaching/ui/CompassView.java index 9529a15..eaaf711 100644 --- a/main/src/cgeo/geocaching/ui/CompassView.java +++ b/main/src/cgeo/geocaching/ui/CompassView.java @@ -196,16 +196,18 @@ public class CompassView extends View { marginLeftTemp = (getWidth() - compassRoseWidth) / 2; marginTopTemp = (getHeight() - compassRoseHeight) / 2; + canvas.save(); canvas.rotate(-azimuthTemp, canvasCenterX, canvasCenterY); canvas.drawBitmap(compassRose, marginLeftTemp, marginTopTemp, null); - canvas.rotate(azimuthTemp, canvasCenterX, canvasCenterY); + canvas.restore(); marginLeftTemp = (getWidth() - compassArrowWidth) / 2; marginTopTemp = (getHeight() - compassArrowHeight) / 2; + canvas.save(); canvas.rotate(-azimuthRelative, canvasCenterX, canvasCenterY); canvas.drawBitmap(compassArrow, marginLeftTemp, marginTopTemp, null); - canvas.rotate(azimuthRelative, canvasCenterX, canvasCenterY); + canvas.restore(); marginLeftTemp = (getWidth() - compassOverlayWidth) / 2; marginTopTemp = (getHeight() - compassOverlayHeight) / 2; |
