2010-03-02 41 views
3

我想顯示大約800 x 800像素的大圖像。我希望能夠通過用手指拖動來在全部四個方向上平移它。我也想放大和縮小。我需要能夠知道平移值和縮放值,因爲我必須在圖像上的特定位置繪製小文本字符串。關於單幅大圖像的pannable-zoomable視圖的建議?

例如,如果平移100像素的權利,我需要知道,所以我可以將該偏移量添加到我的所有元素。

想知道做這個的好方法是什麼。我是否應該在我實現的View中的paint方法中自己實現它?有沒有其他的標準方法呢?它本質上是像谷歌地圖查看,只有一個大板磚,但我畫我的腳與平移和縮放它的上面,

感謝

+0

你可能想使你有本地拖動到開始與滾動型。它可能會裁剪,因此它一次只顯示圖像的固定區域。 – 2010-03-03 20:25:18

+0

我期待着做類似的事情。我發現這個https://sites.google.com/site/androidhowto/how-to-1/custom-scrollable-image-view沒有運氣,但掌握瞭如何利用,但也許你可以做一些道理。 – taraloca 2011-02-17 17:52:40

回答

0

嗨,大家好,我試圖在幾個月前沒有成功,在最後,我只需要加載一個網頁視圖中的圖像使變焦控制,我能夠做我的形象的聲像...

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); 

    } 
}