2010-03-02 3 views
3

약 800 x 800 픽셀의 큰 이미지를 표시하고 싶습니다. 나는 손가락으로 드래그하여 네 방향으로 모두 움직이기를 원합니다. 또한 확대 및 축소가 가능하도록하고 싶습니다. 이미지 위에 특정 위치에 작은 텍스트 문자열을 그려야하기 때문에 팬 값과 줌 값을 알 수 있어야합니다.하나의 큰 이미지를 pannable-zoomable로 볼 때 권장 사항은 무엇입니까?

예를 들어, 팬이 오른쪽으로 100 픽셀이면 모든 오프셋에 오프셋을 추가 할 수 있어야합니다.

이 작업을 수행하는 좋은 방법이 무엇인지 궁금합니다. 구현 한 뷰 내에서 paint 메서드로 직접 구현해야합니까? 그것을하는 다른 표준 방법이 있습니까? 그것은에서, 구글지도, 하나 개의 큰 타일을 볼 수 있지만 내가 팬 및 줌과 그 위에 내 핀을 그릴 수 있고,

감사

내가 성공하지 몇 달 전에 시도
+0

당신은 아마 네이티브 드래그 있도록 ScrollView로 시작하는 것이 좋습니다 . 이미지가 한 번에 고정 된 영역 만 표시하도록 잘릴 수도 있습니다. –

+0

나는 비슷한 일을 할려고한다. https://sites.google.com/site/androidhowto/how-to-1/custom-scrollable-image-view 행운을 빕니다 아직 사용 방법을 파악하고 있지만 어쩌면 당신은 이해할 수 있습니다. – taraloca

답변

0

안녕 얘들 아 본질적으로 같다 마지막으로 난 그냥 확대/축소 컨트롤을 사용 webview 내부 이미지를로드하고 내 이미지의 패닝을 할 수있었습니다 ...

public class PhotoZoom extends Activity { 

    private static final FrameLayout.LayoutParams ZOOM_PARAMS = 
     new FrameLayout.LayoutParams(
       ViewGroup.LayoutParams.FILL_PARENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       Gravity.BOTTOM); 

    private WebView PhotoZoom; 
    private long lastTouchTime = -1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.photo_zoom);     

     PhotoZoom = (WebView) findViewById(R.id.PhotoZoom);   
     PhotoZoom.setBackgroundColor(Color.BLACK); 

     Bundle bundle = getIntent().getExtras(); 
     String Photoname = bundle.getString("URLPhoto");   
     PhotoZoom.loadUrl("content://com.jorgesys.pan/sdcard/myimages/" +fotoname); 

     WebSettings webSettings = PhotoZoom.getSettings(); 
     webSettings.setSavePassword(false); 
     webSettings.setSaveFormData(false); 
     webSettings.setJavaScriptEnabled(true); 
     webSettings.setSupportZoom(true);  

     FrameLayout mContentView = (FrameLayout) getWindow().getDecorView().findViewById(android.R.id.content); 
     View zoom = PhotoZoom.getZoomControls(); 

     mContentView.addView(zoom, ZOOM_PARAMS); 
     zoom.setVisibility(View.VISIBLE); 

    } 
} 
관련 문제