我有一個奇怪的問題,我想用WebView來顯示圖像並使其可縮放。我有以下方法我的活動中:設置webview(Android)的最小縮放級別
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manual);
WebView webView = (WebView)findViewById(R.id.webView);
webView.loadUrl("file:///android_res/drawable/some_image.jpg");
webView.setInitialScale(getScale());
webView.getSettings().setBuiltInZoomControls(true);
}
的getScale()
方法計算的比例,我可以webView.setInitialScale()
使用我的形象恰好擴展到整個屏幕寬度,和它的作品。內置的變焦控制也可以在某種程度上起作用,但是:
在放大圖像之後,我無法縮小到我的初始縮放比例,因爲最小比例大於我的初始比例。
使用WebSettings設置縮放密度沒有幫助,我認爲即使它在我的手機上做了也不會在另一個上。
我也試過:我製作了一個包含圖像的HTML頁面,它只是body元素的子元素。我將它的寬度設置爲100%,並且按照這種方式進行縮放。但是,如果我再次放大,圖像立即調整大小,以適應屏幕寬度。
我找到了一些答案,但沒有人真的幫助:
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setDefaultZoom(ZoomDensity.FAR);
webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
一個方案中提到採用反射改變的WebView類忽略的限制,但我擔心這可能會打破一些舊版本的我的應用程序的Android。我必須與API級別爲9的設備兼容。