Android 使用webvie中经常遇到的问题

本文详细介绍了如何解决Android应用中Webview的闪屏问题,尤其是在夜间模式下出现的白屏现象。提供了通过设置背景色和重写WebViewClient来调整背景的方法。此外,还分享了Webview的优化技巧,包括清除缓存、历史记录和表单数据,以及如何正确释放Webview资源。最后,提到了两种修改Webview字体大小的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.硬件加速闪屏问题:硬件加速是必须开的,最好是在清单文件中加,不要动态设置硬件加速,因为会致使某些机型webview闪屏                                      严重。夜间模式下一些机型打开webview会出现闪白的情况,我们需要给webview设置一个背景

                    webView.setBackgroundColor(Color.TRANSPARENT);

还是不行的话 可以重写WebViewClient在onpageFinished()方法中动态注入JS调整背景色

    //下面的JS方法的调用 解决了 夜间模式下白屏一下的现象

   webView.loadUrl("javascript:function getSub(){" + "document.getElementsByTagName('body')[0].style.background='#2A2A2C'" + "};getSub();");

2.webview优化

@Override
protected void onDestroy() {
    //清除网页访问留下的缓存
    //由于内核缓存是全局的因此这个方法不仅仅针对webview而是针对整个应用程序.
    if (webView != null) {
        webView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
        webView.clearCache(true);
        webView.clearHistory();
        webView.clearFormData();
        ((ViewGroup) webView.getParent()).removeView(webView);
        //释放资源
        webView.destroy();
        webView = null;
    }
    getCacheDir().delete();
    super.onDestroy();
}

3.修改字体大小

 方式有两种:第一、settings.setTextZoom(100) 括号中是百分比,设置默认字体大小的百分之多少

                      第二、settings.setTextSize(WebSettings.TextSize.NORMAL);

                                settings.setTextSize(WebSettings.TextSize.LARGER);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值