구글 지도의 원점을 화살표가 있는 아이콘으로 바꾸고 방향을 따라 돌리는 방법

package com.example; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Point; import android.location.Location; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapView; import com.google.android.maps.MyLocationOverlay; public class MyCustomLocationOverlay extends MyLocationOverlay {     private Context mContext;     private float   mOrientation;     public MyCustomLocationOverlay(Context context, MapView mapView) {         super(context, mapView);         mContext = context;     }     @Override     protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) {         // translate the GeoPoint to screen pixels         Point screenPts = mapView.getProjection().toPixels(myLocation, null);         // create a rotated copy of the marker         Bitmap arrowBitmap = BitmapFactory.decodeResource( mContext.getResources(), R.drawable.arrow_green);         Matrix matrix = new Matrix();         matrix.postRotate(mOrientation);         Bitmap rotatedBmp = Bitmap.createBitmap(             arrowBitmap,             0, 0,             arrowBitmap.getWidth(),             arrowBitmap.getHeight(),             matrix,             true         );         // add the rotated marker to the canvas         canvas.drawBitmap(             rotatedBmp,             screenPts.x - (rotatedBmp.getWidth()  / 2),             screenPts.y - (rotatedBmp.getHeight() / 2),             null         );     }     public void setOrientation(float newOrientation) {          mOrientation = newOrientation;     } } 

 made a few changes to the previuos code in order to get it to work properly because the arrow was pointing to the wrong direction and rotating in the opposite direction.
I changed
matrix.postRotate(mOrientation); 

for
matrix.postRotate(this.getRotation()); 

and added to the end:
mapView.postInvalidate(); 

to redraw the arrow when it changes http://developer.android.com/reference/com/google/android/maps/MyLocationOverlay.html

좋은 웹페이지 즐겨찾기