Android WebView仅重绘页面左侧

时间:2015-06-17 22:35:49

标签: android webview

我正在替换原来的问题,因为我发现了更多我认为使问题更加清晰的信息。

我的XML现在很简单,只是一个填充整个活动的WebView:

<?xml version="1.0" encoding="utf-8"?>
<WebView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/Web"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
</WebView>

我的完整Java代码现在也非常简单:

public class WebViewActivity extends Activity 
{
@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);

        WebView web = (WebView) findViewById(id.Web);
        web.getSettings().setBuiltInZoomControls(true);

        String html = ""
                +"<!DOCTYPE html>"
                +"<html><head>"
                +"</head>"
                +"<body>"
                +"<div>"
                +"Wide image below this text. Wide image below this text. Wide image below this text. Wide image below this text. "
                +"Wide image below this text. Wide image below this text. Wide image below this text. Wide image below this text. "
                +"Wide image below this text. Wide image below this text. Wide image below this text. Wide image below this text. "
                +"Wide image below this text. Wide image below this text. Wide image below this text. Wide image below this text. "
                +"Wide image below this text. Wide image below this text. Wide image below this text. Wide image below this text. "
                +"Wide image below this text. Wide image below this text. Wide image below this text. Wide image below this text. "
                +"</div>"
                +"<div><img src=\"http://ampcocontracting.com/wp-content/uploads/ampco-collage-banner_about-us2.jpg\"></div>"
                +"<div>"
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"Wide image above this text. Wide image above this text. Wide image above this text. Wide image above this text. "
                +"<br>THE END!"
                +"</div>"
                +"</body>"
                +"</html>"
                +"";

        web.loadData(html,"text/html","UTF-8");
    }
}

HTML中的图像是一个非常宽的图像,只是我在网上找到的一个例子,但任何宽图像都有相同的效果(在我的真实应用/代码中我必须加载HTML电子邮件,所以我几乎无法控制实际HTML /内容)。

当我捏放大或使用“+”原生UI按钮时,只有“最左侧”的页面部分被重绘,“屏幕右侧”的所有内容都没有重新绘制会在图像和文本上产生这种可怕的倾斜/切片效果。放大时,屏幕不会向左滚动,因此非常明显。如果我一直向左滚动屏幕,它看起来很好/正确,因为那边重新绘制,如果我向后滚动到右侧,它看起来很糟糕。这不仅仅是一个临时问题,因为我可以继续在整个页面上滚动,它就像那样。缩小后退,或者有时放大,有时会“修复”它,但再次缩放会再次破坏它。

我只是提交一个错误,而不是在这里发布一个问题,因为它似乎是一个明显的错误,但在设备上安装的Web浏览器中查看HTML时我看不到相同的内容(包括内置的“浏览器“和Chrome”,以及GMail和Yahoo Mail也没有这个问题。我也没有在网上看到任何其他的报道,所以我希望有一个简单的答案或解决方案,这是显而易见的,没有其他人甚至问过,但是设法逃脱了我......?

如果我放大/缩小并滚动到足够的地方,我可以看到它看起来很糟糕,这就是为什么我认为我不能“只是忍受它”:

super bad

以下是它应该看起来的样子,并在首次加载时执行:

good

如果我什么都不做,只是捏缩放少量,看起来像这样,如果我在此之后向左滚动,可见部分看起来不错,但向右滚动我仍然可以看到这个弄乱了部分):

bad

1 个答案:

答案 0 :(得分:1)

在WebView的设置中设置setUseWideViewPort(true)