안드로이드 개발 질문/답변
(글 수 45,052)
MapView를 이용하여 마커를 찍고 onTap이라는 함수를 사용하여 그 마커를 누른 후 떼었을 때 이벤트 처리를 해 줄 수 있습니다.
그런데 이 이벤트를 그냥 클릭했을 때로 바꾸고 싶은데요! 어떻게 해야하나요?
그러니까 터치로 하자면 눌렀을 때와 떼었을 때와 누르고 이동 할 때 뭐 이런 이벤트들이 있잖아요~ 그렇게 이벤트를 변경할려면 어떻게
해야하지는 좀 알려주세요!!! 안드로이드 개발자 사이트에는 MapView에 대한 정보가 자세하게 안나와있네요 ㅠㅠ
혹시 MapView 설명이 자세하게 나와있는 사이트도 있으면 좀 알려주세요!!
자세히 설명좀 부탁드릴께요!!
private class HutsItemizedOverlay extends ItemizedOverlay<OverlayItem>{ GeoPoint hutPoints[] = new GeoPoint[List_Size]; OverlayItem[] item = new OverlayItem[List_Size]; public HutsItemizedOverlay(Drawable defaultMarker){ super(defaultMarker); boundCenterBottom(defaultMarker); for(int i = 0; i < List_Size; i++){ hutPoints[i] = new GeoPoint(Integer.parseInt(Latitude.get(i).toString()), Integer.parseInt(Longitude.get(i).toString())); } for(int i = 0; i < List_Size; i++){ item[i] = new OverlayItem(hutPoints[i], Name.get(i).toString(), Name.get(i).toString()); } populate(); } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow){ super.draw(canvas, mapView, false); } protected boolean onTap(final int i) { Toast.makeText(Act_CCTV_project.this, item[i].getSnippet(), Toast.LENGTH_SHORT).show(); new AlertDialog.Builder(Act_CCTV_project.this) .setTitle("Select list.") .setItems(new String[] {"Play", "Edit Info", "Edit GPS", "Delete"}, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch(which){ case 0: uri = "rtsp://"+Camera.get(i)+":"+Port.get(i); Save_Uri(); Intent act_showvideo = new Intent(Act_CCTV_project.this, Act_ShowVideo.class); startActivity(act_showvideo); break; case 1: Intent act_edit_info = new Intent(Act_CCTV_project.this, Act_Edit_Info.class); act_edit_info.putExtra("onTap", i); startActivity(act_edit_info); finish(); break; case 2: Intent act_edit_gps = new Intent(Act_CCTV_project.this, Act_Edit_GPS.class); act_edit_gps.putExtra("onTap", i); startActivity(act_edit_gps); finish(); break; case 3: Name.remove(i); //해당 id의 리스트를 지우고 Camera.remove(i); Port.remove(i); Latitude.remove(i); Longitude.remove(i); List_Size = List_Size - 1; Save_List_Size(); Save_List_Data(); Intent restart = new Intent(Act_CCTV_project.this, Act_CCTV_project.class); startActivity(restart); finish(); break; } } }) .setNegativeButton("Close", null) .show(); return(true); } @Override protected OverlayItem createItem(int i) { // TODO Auto-generated method stub return item[i]; } @Override public int size() { // TODO Auto-generated method stub return hutPoints.length; } }
itemizedOverlay 클래스에 onTouchEvent 사용하시면될거같아요 ㅎ