2014-02-19 90 views
1

我已經閱讀了大量的文章,並嘗試了一些建議的解決方案,但沒有多少運氣。試圖獲得顯示圖像縮放和平移的句柄

我有一個愉快地顯示文本視圖的ViewPager。

我現在想要增強它來支持ImageViews。這些圖像可能有多種形狀和大小,所以我需要給予用戶縮放和平移的能力,以便專注於任何區域。

注意:我不一定想要縮放,因爲我嘗試過的縮放縮放庫(例如,https://github.com/jasonpolites/gesture-imageview/blob/master/main/src/com/polites/android/GestureImageView.javahttp://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/)似乎間歇性地工作,並且因內存不足而崩潰。因此,我並不願意通過手勢檢測使解決方案複雜化,我很樂意將滑塊控件放在視圖上方以實現縮放UI。 (我是否需要ScrollView或在ImageView中平移一個特性),我應該縮放位圖還是調整大小風景?

任何有關我需要使用什麼視圖組件的建議都將不勝感激。

我是否應該使用ImageView?我已經看到一些答案,表明WebView是一個更好的起點。

我的直覺是,我想要做的應該是非常基本的,並且只需要正確的視圖層次結構和視圖配置設置。這似乎太簡單,需要一個自定義ImageView類,但我當然可能是錯的。

+0

試試這個:https://github.com/pskink/ZoomView – pskink

+0

@pslink,非常感謝您的鏈接,我相信它會工作。但是,我試圖避免第三方代碼。 – pinoyyid

+0

好運然後... – pskink

回答

1

我是否應該使用ImageView?我已經看到一些答案,表明WebView是一個更好的起點。

這是我最終解決它的方式。我簡單地將圖像文件名包裝在一些HTML中,並將其提供給webview。

這給了我下面的具體好處: -

  • 詳細的用戶行爲都與瀏覽器一致,那麼熟悉的(例如縮放比例,捏靈敏度,屏幕控制的可用性。)用戶的肌肉記憶
  • 我不需要依賴任何第三方代碼
  • 由於它的核心的Android,它可能更好地與邊緣的情況下進行測試(例如,一個圖書館中,我認爲是不支持橫向)
  • 我不需要擔心內存不足ory情況下使用位圖處理
  • 未來,我可能希望提供「網頁」作爲我的ViewPager中的項目之一,無論如何,一石二鳥。

這是我結束了的代碼。

File imgFile = new File(FILESDIR,FILENAME); 
if(imgFile.exists()){ 
    WebView wv = (WebView) rootView.findViewById(R.id.imageView1); 
    wv.getSettings().setBuiltInZoomControls(true); 
    wv.getSettings().setDisplayZoomControls(true); 
    String html = ("<html><img src='"+imgFile.getName()+"'></html>"); 
    wv.loadDataWithBaseURL("file://"+imgFile.getAbsolutePath(), 
    html, 
    "text/html", 
    "utf-8", 
    ""); 
}