MapView Overlay onTab & multitouch zoom in&out conflict 해결법
- MapView 를 사용할 때 일반 화면 터치와 Multi-touch zoom in & out 을 구분하는 것이 필요할 때가 있습니다. 예를 들어 MapView 에 터치를 하는 곳마다 marker 를 만들 일이 있는 경우 Zoom in & out gesture 를 하는 곳에도 marker 가 생기는 일이 발생하지요. 이럴 경우에는 다음과 같이 구현해주면 문제를 해결할 수 있습니다.
public class MyOverlay extends Overlay{
private boolean mIsMultiTouched = false;
@override
public boolean onTouchEvent( MotionEvent e, MapView v ){
if ( e.getPointerCount() != 1 ){
mIsMultiTouched = true;
}
else if ( e.getAction() == MotionEvent.ACTION_DOWN ){
mIsMultiTouched = false;
}
return super.onTouchEvent( e, v );
}
@Override
protected boolean onTap( GeoPoint p, MapView mapView ){
if ( !mIsMultiTouched ){
// do sth...
}
return super.onTap( p, mapView );
}
}
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] 단말 screen width, height 얻어오는 방법. (0) | 2012.10.26 |
---|---|
[android] LockScreen 과 Activity 생명주기에 대한 관계 (0) | 2012.10.26 |
[android] NameValuePair 에 object 전달하는 방법 (0) | 2012.10.26 |
[android] camera의 setPreviewSize 에서 발생하는 java.lang.RuntimeException: setParameters failed (2) | 2012.10.26 |
[jni] jni 사용시 주의점. (0) | 2012.10.26 |
댓글