2012-11-08 4 views
0

지도로 구성된 지침 응용 프로그램을 만들었습니다. 이지도는 데이터베이스의 데이터를 사용하여 동적으로 그려집니다. [rectangle coordinates]지도를 그리려면 View 클래스를 사용하고 Ondraw 메서드를 재정의했습니다.보기에서 확대 방법을 구현하는 방법은 무엇입니까?

문제는 확대 기능을 구현하는 방법을 찾을 수 없다는 것입니다. OnLongPress 및 OnTouchEvent 메서드를 처리하기 위해 이미 Gesture Detector 클래스를 사용했습니다. 나는 Pinch-to-Zoom-in 기능을 생각하고 있었지만 어떻게해야하는지 전혀 모릅니다.

멋진 아이디어를 기대합니다. 고맙습니다!

클래스

를 확장
  • 보기
  • GesturDetector
  • 당신이 우리에게 당신이 동적 맵을 그리는 방법에 대한 더 많은 정보를 제공 할 수
+0

잘못된 방식으로 SurfaceView를 사용하고 있습니다. SurfaceView는 별도의 스레드에서 계산되며 lockCanvas() 및 unlockCanvasAndPost (Canvas) 메서드를 사용합니다. – Budius

+0

또한 클래스가 있습니다 : 꼬집음 제스처를위한 SimpleOnScaleGestureListener – Budius

+0

괜찮습니다 .. View 클래스로 전환했습니다 .. 고맙습니다 :) – Ruby

답변

0

? 당분간, 나는 가정을하고 그걸로 도망 갈 것이다. 당신이 캔버스에 모양을 그리는 경우에 그릴 비트 맵에서 캔버스를 가리킬 수 있습니다 : 지금 당신은지도의 비트 맵 표현을 가지고

Bitmap myDynamicMapBitmap = new Bitmap(MAP_WIDTH, MAP_HEIGHT, Bitmap.Config.ARGB_8888); 
mapCanvas.setBitmap(myDynamicMapBitmap); 
// Draw your map on the canvas here 

, 당신은 기본적으로 인이 오픈 소스 프로젝트를 활용할 수 사용자가 이미지를 이동하고 확대 할 수있는 내장 안드로이드 사진 갤러리 응용 프로그램의 적응 :

ImageViewZoom on GitHub

나는 앱 전에 해당 프로젝트를 사용했습니다, 그것은 정말 잘 작동합니다. 원하는 동작을 얻으려면 일부를 조정해야 할 수도 있습니다 (예 : 패닝 사용을 원하지 않는다고 말했기 때문에 패닝을 사용하지 않도록 설정).

그런 다음 당신이 정말로해야 할 모든은 다음과 같습니다

imageViewZoomInstance.setImageBitmap(myDynamicMapBitmap); 

그 뷰가 내장되어 핀치 줌. 작성한 현재보기와 병합하기를 원할 것입니다.

+0

thanx 많이 .. 아쉽습니다! – Ruby