2

我有一个从 URL 下载和显示图像的应用程序。这很好用

URLConnection conn = urls[i].openConnection();
conn.connect();
if(conn.getContentLength() > 0)
is = conn.getInputStream();
bis = new BufferedInputStream(is);
Bitmap temp = BitmapFactory.decodeStream(bis);

我注意到 WebView 的下载和显示图像比上面的代码快得多,所以我想我会尝试。

String url = "http:\\image.jpg"
int mWidth = getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getWidth()
webView.loadData("<html><body> <img src=\"" + url + "\" width=\"" + mWidth + "px\" height=\"auto\"></body></html>", "text/html", null);

尽管这样可以更快地获取图像,但它不会将图像缩放到屏幕大小,但大图像总是超出 WebView 的宽度,需要滚动才能正确查看。

有谁知道我如何解决问题以在 WebView 中正确显示图像,或者如何首先加快图像的下载速度?

我希望加快下载速度,但如果我可以正确缩放图像,我很乐意使用 WebView。

4

2 回答 2

5

通过 CSS 将图像元素的宽度设置为 100%,高度应根据图像的纵横比/比例进行缩放。

于 2012-06-08T11:09:48.987 回答
0

我还没有尝试过。但是从您的问题中,我可以看到您使用 webview 面临的唯一问题是屏幕尺寸适合问题。为了克服这个问题,您可以简单地将初始比例级别设置为 1,并且您的图像应该适合屏幕内部。

尝试这个,

     <WebView  
      android:id="@+id/webview"
      android:layout_width="50dip" 
      android:layout_height="50dip"/>

webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);

注意:我不确定这将在多大程度上有效。我还没试过这个。但是尝试一下是值得的。

于 2012-06-08T11:16:52.093 回答