지도 위의 투명한 ImageView에 리스너를 설정하여 이벤트를 꼬집는 (확대) 이벤트에만 반응하도록 할 수 있습니다.지도 이동과 같은 모든 작업이 Google지도에서 처리됩니다.래퍼를 통해 Google지도를 확대/축소하면됩니까?
내 목표는과 같이 할 수있는지도를 확대 중심으로 만드는 것입니다 :
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mGoogleMap.getCameraPosition().target, amountOfZoomNeeded));
하지만 난 먼저 핀치 이벤트를 캐치하고, 아래의지도를 이용하여 onTouch 블록 이후 해당 이벤트해야합니다.
편집 : 나는 ScaleGestureDetectors onScale를 사용 확대를 중심으로 작성하려면 관리() 메소드
:
public class PinchListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
private GoogleMap googleMap;
public PinchListener(GoogleMap googleMap){
this.googleMap = googleMap;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
double zoom = googleMap.getCameraPosition().zoom;
zoom = zoom + Math.log(detector.getScaleFactor())/Math.log(1.5d);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(googleMap.getCameraPosition().target, (float) zoom);
googleMap.moveCamera(update);
return true;
}
}
그리고 내 MainActivity에 내가 mMapWrapper 내가 언급 투명 이미지 뷰 래퍼이고, 초기화 일찍이.
ScaleGestureDetector mScaleGestureDetector = new ScaleGestureDetector(this, new PinchListener(mGoogleMap));
mMapWrapper.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return true;
}
});
하지만 지금은 모든 터치 이벤트가 onTouch() 래퍼의 방법으로 먹히고 때문에 내가지도를 이동할 수없는 문제에 직면하고있다. 어떻게 이런 일이 일어나지 않도록 할 수 있습니까?
[this] (https://stackoverflow.com/a/46372495/6950238) 답변보기 –