aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2011-08-25 23:18:52 +0200
committerrsudev <rasch@munin-soft.de>2011-08-25 23:18:52 +0200
commita9ec39c0ce7284f1bf8189a0497d17c24aa43057 (patch)
tree8c71442f0b6e51a7144086e1f6db85e31843419e /src
parent6bdc89b3cbb00dfaaf5716b1cbb76962ddc2ad24 (diff)
downloadcgeo-a9ec39c0ce7284f1bf8189a0497d17c24aa43057.zip
cgeo-a9ec39c0ce7284f1bf8189a0497d17c24aa43057.tar.gz
cgeo-a9ec39c0ce7284f1bf8189a0497d17c24aa43057.tar.bz2
Probably fixing #213 trail gets disaligned on mf
Diffstat (limited to 'src')
-rw-r--r--src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java b/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java
index caee721..b8c8723 100644
--- a/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java
+++ b/src/cgeo/geocaching/mapcommon/cgMapMyOverlay.java
@@ -6,6 +6,7 @@ import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
+import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Point;
@@ -32,8 +33,8 @@ public class cgMapMyOverlay implements OverlayBase {
private Point center = new Point();
private Point left = new Point();
private Bitmap arrow = null;
- private int widthArrow = 0;
- private int heightArrow = 0;
+ private int widthArrowHalf = 0;
+ private int heightArrowHalf = 0;
private PaintFlagsDrawFilter setfil = null;
private PaintFlagsDrawFilter remfil = null;
private Location historyRecent = null;
@@ -187,19 +188,21 @@ public class cgMapMyOverlay implements OverlayBase {
if (arrow == null) {
arrow = BitmapFactory.decodeResource(activity.getResources(), R.drawable.my_location_chevron);
- widthArrow = arrow.getWidth();
- heightArrow = arrow.getHeight();
+ widthArrowHalf = arrow.getWidth() / 2;
+ heightArrowHalf = arrow.getHeight() / 2;
}
int marginLeft;
int marginTop;
- marginLeft = center.x - (widthArrow / 2);
- marginTop = center.y - (heightArrow / 2);
+ marginLeft = center.x - widthArrowHalf;
+ marginTop = center.y - heightArrowHalf;
+
+ Matrix matrix = new Matrix();
+ matrix.setRotate(heading.floatValue(), widthArrowHalf, heightArrowHalf);
+ matrix.postTranslate(marginLeft, marginTop);
- canvas.rotate(heading.floatValue(), center.x, center.y);
- canvas.drawBitmap(arrow, marginLeft, marginTop, null);
- canvas.rotate(-(heading.floatValue()), center.x, center.y);
+ canvas.drawBitmap(arrow, matrix, null);
canvas.setDrawFilter(remfil);