Android - 渲染webview时的拉伸效果

Posted

技术标签:

【中文标题】Android - 渲染webview时的拉伸效果【英文标题】:Android - stretching effect when rendering webview 【发布时间】:2018-04-02 03:38:14 【问题描述】:

我想显示带有格式化文本(粗体和列表)的元素。为此,我将 Recyclerview 与包含 Webview 的项目一起使用。

Webview的内容设置如下

String content = ...;
final WebSettings webSettings = webView.getSettings();
webSettings.setDefaultFontSize( 14);
webView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);

在加载 Activity 的时候,WebView 会产生一种视觉效果,让它看起来很丑。

就好像webview从高度0开始,然后被拉伸,内容就出现了。 如果我将 webview 放在一个空的活动中,也会发生同样的效果。

知道如何解决这个问题吗?

【问题讨论】:

webSettings.setDefaultFontSize(14);请不要使用这条线...并检查.. @Relsell 是的,没有那行效果是一样的,我后来加了。 ok 尝试在您添加的位置添加您的 xml 布局... webview 您可以在 webview 加载完成之前添加启动布局。 【参考方案1】:

将 imageView 添加到您的布局中并覆盖 WebviewClient 中的 onPageFinished():

webView.setVisibility(View.GONE);
imageView.setVisibility(View.VISIBLE);
webView.setWebViewClient(new WebViewClient() 
        @Override
        public void onPageFinished(WebView view, String url) 
            super.onPageFinished(view, url);
            imageView.setVisibility(View.GONE);
            webView.setVisibility(View.VISIBLE);
        
    );

图像将在 webview 加载完成之前显示。

【讨论】:

非常感谢,但这不是我想要的。我已经有了文字。我为什么要展示水花?

以上是关于Android - 渲染webview时的拉伸效果的主要内容,如果未能解决你的问题,请参考以下文章

WPF 文本框设置了阴影效果后,因左右的transform变化引发的拉伸渲染问题

android中webview加载html,用本地的css渲染页面如何做

Android Webview:检测渲染何时完成

如何在android webview中优化渲染速度

DJ 效果算法的声音拉伸

渲染时 3D 立方体出现拉伸