试图让Android WebView正确缩放

时间:2012-06-13 19:47:48

标签: android android-webview

我需要能够显示具有缩放和滚动功能的图像。由于这对ImageView来说似乎有点过于繁琐,我用WebView加载本地图像然后显示它。这是我目前的代码:

    WebView image = (WebView)findViewById(R.id.image);
    image.getSettings().setBuiltInZoomControls(true);
    image.getSettings().setLoadWithOverviewMode(true);
    image.getSettings().setUseWideViewPort(true);
    image.setInitialScale(40);
    image.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
    image.loadUrl("file:///android_asset/image.png");

虽然这会加载图像,但我无法仅显示图像。由于setUseWideViewPort(true)使得它一直向前扩展以扩展宽度,因此它下方总是有相当数量的空白区域。

有关允许它仅滚动加载的图像的任何建议吗?谢谢。我也尝试过setDefaultZoom,并且不能让它足够远。

1 个答案:

答案 0 :(得分:1)

我认为在setInitialScale方法中使用静态百分比40是不错的,但是,它没有考虑屏幕密度或每个说法的大小。目前你的40意味着你缩放到实际大小的40%。

考虑一下只在PC上的Web浏览器中打开图像时,这基本上会以相同的方式响应,将其放在左上角。是的,您可以使用WebView进行缩放,但在这种情况下,要使其适用于所有平台,您必须根据屏幕分辨率减去任何边界矩形(Android的情况下的顶部和底部)计算缩放系数到图像的实际宽度和高度。

我建议你回到ImageView!