aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/ui/CompassView.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-03-22 10:08:28 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-03-22 10:44:31 +0100
commit35aac9930fc3441fb2d0d627a077b9e9b7c73f80 (patch)
treeeb59b2afeeaeb78d8b05d967aa198f33d829ac48 /main/src/cgeo/geocaching/ui/CompassView.java
parent5d66185b88a29abfee73d84d2a124f00060faf68 (diff)
downloadcgeo-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.java6
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;