仅包含图像的WebView不适合屏幕

时间:2014-04-14 06:24:16

标签: android image webview resize

我正在为我的网站搞乱一个Rss阅读器,我得到了包含文本和图像的<description>标签。要毫无问题地使用它们,我将文本和图像分成两个字符串。我使用 webview 来加载图片,因为我创建的图片字符串包含<img src>标记。

一切都在按照应有的方式工作,但在我在模拟器中的测试中,图像在高达720p的屏幕中正常显示。当我使用模拟器作为具有1080p的Nexus 5时,图像不会缩放到屏幕上,我会在右侧看到一个滚动条。

要理解这里的问题是720p屏幕中的图像: http://imgur.com/VArmsmb 和1080p中的图像: http://imgur.com/7zGkX0J

片段的xml显示所有这些:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="@string/title"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />

    <ScrollView
        android:id="@+id/sv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/title"
        android:layout_marginTop="10dp" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <WebView
                android:id="@+id/imgWebView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:scrollbarStyle="insideOverlay"
                android:text="@string/desc" />

            <WebView
                android:id="@+id/textWebView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/imgWebView"
                android:scrollbarStyle="insideOverlay"
                android:text="" />

            <WebView
                android:id="@+id/fullWebView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scrollbarStyle="insideOverlay"
                android:text=""
                android:visibility="gone" />

            <Button
                android:id="@+id/readMore"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/textWebView"
                android:layout_centerHorizontal="true"
                android:text="@string/fullArticle" />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

此特定网页视图的代码如下:

final WebView imgW = (WebView) view.findViewById(R.id.imgWebView);
WebSettings ws = imgW.getSettings();
        ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
        ws.setLightTouchEnabled(false);
        ws.setPluginState(PluginState.ON);
        ws.setJavaScriptEnabled(true);
        ws.setLoadWithOverviewMode(true);
        ws.setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");

imgW.loadDataWithBaseURL("http://www.liveplace.gr/", imgCode, "text/html", "UTF-8", null);

任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

这可以帮到你:

以下行将根据屏幕尺寸修复尺寸......

WebSettings settings = yourWebView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);

请参阅This Link替代方式......