안드로이드 개발 질문/답변
(글 수 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 를 하는건가요?