안드로이드 개발 질문/답변
(글 수 45,052)
package com.nobrain.act;
import java.util.ArrayList;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.util.Log;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
import com.google.android.maps.Projection;
public class test_overlayitemized extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
private GeoPoint gPoint;
private Bitmap picker;
public test_overlayitemized(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
// TODO Auto-generated constructor stub
picker = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.maker);
}
public test_overlayitemized(Drawable defaultMarker, Context mContext) {
super(boundCenterBottom(defaultMarker));
picker = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.maker);
this.mContext = mContext;
}
@Override
protected OverlayItem createItem(int arg0) {
// TODO Auto-generated method stub
return mOverlays.get(arg0);
}
@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}
public void addOverlayItem(OverlayItem item){
mOverlays.add(item);
populate();
}
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
// TODO Auto-generated method stub
this.gPoint = p;
Log.d("Parsing", "Lat : "+p.getLatitudeE6()+"\nLong : "+p.getLongitudeE6());
// addOverlayItem(new OverlayItem(p, "", "")); 탭 아이콘 추가
return super.onTap(p, mapView);
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
// TODO Auto-generated method stub
super.draw(canvas, mapView, shadow);
// 탭자리에 아이콘 출력
if(!shadow && gPoint!=null){
Projection projection = mapView.getProjection();
Point point = new Point();
projection.toPixels(gPoint, point);
point.offset(picker.getWidth()/-1, picker.getHeight()*-1);
canvas.drawBitmap(picker, point.x,point.y, null);
}
}
}
궁금한게 onTap 과 draw 메소드간에 어떠한 상관관계가 있어서
탭할때마다 새롭게 draw 를 하는건가요?



