public class LOCATION_ITEM_DRAW extends ItemizedOverlay<OverlayItem>{
  private ArrayList<OverlayItem> LIST_INFO = new ArrayList<OverlayItem>();
  Drawable maker;
   int[] bitmap_id = {R.drawable.e1,R.drawable.e2,R.drawable.e3,R.drawable.e4,R.drawable.e5,R.drawable.e6,R.drawable.e7,R.drawable.e8,R.drawable.e9,R.drawable.e10,R.drawable.e11};
  Drawable e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11;
  Drawable earr[] = {e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11};
  /** 줌 레벨 저장용 */
  int zoomlevel  = 0 ;
  OverlayItem OVI ;
  public LOCATION_ITEM_DRAW(Drawable defaultMarker) {
   super(boundCenterBottom(defaultMarker));
   
   
   this.maker = defaultMarker;
   resetdraw();
  }
  private void resetdraw(){
   Drawable makerset = null;
   zoomlevel = mapView.getZoomLevel();
   Log.w("-->","zoomlevel = "+zoomlevel);
   // 아이콘 크기 설정
   Bitmap bitmap_temp;
   for(int i =0 ; i < bitmap_id.length; i++){
    bitmap_temp = BitmapFactory.decodeResource(mcontext.getResources(), bitmap_id[i]);
    bitmap_temp = Bitmap.createScaledBitmap(bitmap_temp, (zoomlevel*3)+10, (zoomlevel*3)+10, true);
    earr[i] = new BitmapDrawable(bitmap_temp);
   }
   /*Drawable aa = new BitmapDrawable*/
   
   LIST_INFO.clear();
   int LIST_SIZE = LIST_INFO_TABLE.size();
   GeoPoint TEMP_GEO  = null;
   
   int cateint = 0;
   if(LIST_SIZE !=0 ){
    for(int i = 0 ; i< LIST_SIZE ; i++){
     
     TEMP_GEO = new GeoPoint((int) (LIST_INFO_TABLE.get(i).INFO_XPOS * 1E6), (int) (LIST_INFO_TABLE.get(i).INFO_YPOS * 1E6));
     cateint = LIST_INFO_TABLE.get(i).INFO_CATEGORY;
     OVI = new OverlayItem(TEMP_GEO, LIST_INFO_TABLE.get(i).INFO_NAME, LIST_INFO_TABLE.get(i).INFO_NAME);
     switch (cateint) {
     case 1:
      makerset = earr[1];
      break;
     case 2:
      makerset =  earr[2];
      break;
     case 3:
      makerset =  earr[3];
      break;
     case 4:
      makerset =  earr[4];
      break;
     case 5:
      makerset =  earr[5];
      break;
     case 6:
      makerset =  earr[6];
      break;
     case 7:
      makerset =  earr[7];
      break;
     case 8:
      makerset =  earr[8];
      break;
     case 9:
      makerset =  earr[9];
      break;
     case 10:
      makerset =  earr[10];
      break;
     case 11:
      makerset =  earr[11];
      break;
     default:
      makerset =  earr[1];
      break;
      
     }
     OVI.setMarker(boundCenterBottom(makerset));
     LIST_INFO.add(OVI);
     
     
    }
    
   }else{
    Log.w("-->", "LIST_ITEM_TABLE = NULL");
   }
   
   populate();
  }
  //마커의 그림자를 셋팅함.
  @Override
  public void draw(Canvas canvas, MapView mapView, boolean shadow) {
   
   super.draw(canvas, mapView, shadow);
   
   boundCenterBottom(maker);
   
   /*if(zoomlevel != mapView.getZoomLevel()){
    zoomlevel = mapView.getZoomLevel();
    Log.w("-->", "RESET_DRAW");
    resetdraw();
    
   }*/
  }
  @Override
  protected OverlayItem createItem(int i) {
   // TODO Auto-generated method stub
   
   return LIST_INFO.get(i);
  }
  @Override
  public int size() {
   return LIST_INFO.size();
  }
  
  @Override
  protected boolean onTap(int index) {
   Toast.makeText(map_view_main.this, LIST_INFO.get(index).getTitle(), Toast.LENGTH_SHORT).show();
   OverlayItem OVI  = LIST_INFO.get(index);
   if(point != null){
    Mailes_length = LOCATION_TO_LOCATION_LENGTH(point,OVI.getPoint()); 
   }
   
   mapControl.animateTo(OVI.getPoint());
   return super.onTap(index);
  }
  @Override
  public boolean onTouchEvent(MotionEvent event, MapView mapView) {
   // TODO Auto-generated method stub
   
   if(event.getAction() == MotionEvent.ACTION_UP){
    
    if(zoomlevel != mapView.getZoomLevel()){
     zoomlevel = mapView.getZoomLevel();
     Log.w("-->","ZOOM_LEVEL_CHANGE=");
     resetdraw(); 
    }
    
   }
   return super.onTouchEvent(event, mapView);
  }
  
 }
 



이렇게 했는데 문제는 터치할때는 잘되는데요
기본으로 주는 setBuiltInZoomControls 이걸로 줌인/아웃을 하면 안되네요 (당연하지만 ㅠ_ㅠ)

이경우에는 줌인 줌 아웃 버튼을 만들어서 구현해야 할까요 ?
아니면 다른 방법이 있나요 ?