안드로이드 개발 질문/답변
(글 수 45,052)
public class LOCATION_MY_DRAW extends MyLocationOverlay{ Bitmap bitmap_arrow_2; public LOCATION_MY_DRAW(Context context, MapView mapView) { super(context, mapView); // TODO Auto-generated constructor stub } @Override protected void drawMyLocation(Canvas canvas, MapView mapView,Location lastFix, GeoPoint myLocation, long when) { // TODO Auto-generated method stub super.drawMyLocation(canvas, mapView, lastFix, myLocation, when); } @Override protected void drawCompass(Canvas canvas, float bearing) { Log.w("T","MyLocationOverlay+drawCompass = "+bearing); if(VIEW_DIRECTION != null){ Projection PRO_J = mapView.getProjection(); // 그리기 설정 Paint print = new Paint(); print.setARGB(250, 255, 0, 0); print.setAntiAlias(true); print.setFakeBoldText(true); Matrix MATRIC_RO = new Matrix(); MATRIC_RO.setRotate(bearing,bitmap_arrow.getWidth()/2,bitmap_arrow.getHeight()/2); bitmap_arrow_2 = Bitmap.createBitmap(bitmap_arrow, 0, 0,bitmap_arrow.getWidth(), bitmap_arrow.getHeight(),MATRIC_RO,true); // 자기위치 그리기 Point point_THIS = new Point(); PRO_J.toPixels(point, point_THIS); canvas.drawBitmap(bitmap_arrow_2,point_THIS.x-bitmap_arrow_2.getWidth()/2,point_THIS.y-bitmap_arrow_2.getHeight()/2, print); }else{ Log.w("-->", "VIEW_DIRECTION == nULL"); } super.drawCompass(canvas, bearing); } }
이렇게 하면 원하는 위치에 나타나긴하는데 업데이트가 가 안되서 아무리 핸드폰을 움직여도 가만히 있고 기본나침판이 표시가 되서 ㅠ_ㅠ
제가 원하는건 기본나침판을 없에고 제가 만든 이미지를 나침판으로 사용하고 싶습니다 .
처음에는 그냥 extend Overlay 로 센서 등록된 거에서 값을가져와 draw 안에서 mapView.invalidate 해서 표현했는데요
이방법은 좀 별로인거 같아서 ..
MyLocationOverlay 로 할려고 했는데 잘안되네요 ㅜ_ㅜ
MyLocationOverlay 를 사용해서 자기가원하는 컴파스를 그리는 방법 아시는분 ?