1

我需要能够显示具有缩放和滚动功能的图像。由于 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 并不能让它走得足够远。

4

1 回答 1

1

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

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

我建议你回到 ImageView !

于 2012-06-13T19:56:38.787 回答