diff options
| author | rsudev <rasch@munin-soft.de> | 2011-08-25 23:18:52 +0200 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2011-08-25 23:18:52 +0200 |
| commit | a9ec39c0ce7284f1bf8189a0497d17c24aa43057 (patch) | |
| tree | 8c71442f0b6e51a7144086e1f6db85e31843419e /src | |
| parent | 6bdc89b3cbb00dfaaf5716b1cbb76962ddc2ad24 (diff) | |
| download | cgeo-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.java | 21 |
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); |
