안드로이드 개발 질문/답변
(글 수 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 를 사용해서 자기가원하는 컴파스를 그리는 방법 아시는분 ?



