android webview加载html 适配,完美解决WebView加载HTML代码适配问题

本文详细介绍了如何解决Android WebView在加载HTML时遇到的问题,包括自动换行、字体颜色修改和图片大小调整。通过在HTML前添加特定代码、启用JS并重写WebViewClient方法,实现了对WebView内容的完美适配。

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

1、WebView不会自动换行,它会把连在一起的字母当成一个表情或者单词,或者,当遇到一个完整的URL链接时,会强制把URL放在一行,导致WebView可以左右滑动

解决方法:这中问题不是WebView设置能够解决的,我们需要改动HTML的代码,在返回的HTML代码前直接拼接下边代码:

//就是有时候web view不会自动换行,它会把连在一起的字母或者表情当作是一个单词,

// 直接显示在后面,不自动换行就造成了在webView中显示不全的现象。

String pre="

";

2、修改客户端修改返回的HTML代码中的字体颜色:

解决方法:通过js修改

1、 //设置WebView启用js

wb.getSettings().setJavaScriptEnabled(true);

2、重写WebViewClient中的onPageFinished方法

wb.setWebViewClient(new WebViewClient(){

@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(view, url);

//修改字体颜色

view.loadUrl("javascript:function modifyTextColor(){" +

"document.getElementsByTagName('body')[0].style.webkitTextFillColor='#E6E6E6'" +

"};modifyTextColor();");

}

});

3、HTML中图片太大时,会导致WebView可以左右滑动

解决方法:通过js修改

1、 //设置WebView启用js

wb.getSettings().setJavaScriptEnabled(true);

2、关闭自动适应

wb.getSettings().setUseWideViewPort(false);

wb.getSettings().setLoadWithOverviewMode(false);

3、//重写WebViewClient中的onPageFinished方法

wb.setWebViewClient(new WebViewClient(){

@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(view, url);

//修改图片大小

int screenWidth = ScreenUtils.getScreenWidth(MessageDetailActivity.this);

String width = String.valueOf(screenWidth- DensityUtil.dp2px(MessageDetailActivity.this,50));

String width2=String.valueOf(DensityUtil.px2dp(MessageDetailActivity.this,screenWidth)-40);

String javascript = "javascript:function ResizeImages() {" +

"var myimg,oldwidth;" +

"var maxwidth = document.body.clientWidth;" +

"for(i=0;i

"myimg = document.images[i];" +

"if(myimg.width > "+width2+"){" +

"oldwidth = myimg.width;" +

"myimg.width ="+width2+";" +

"}" +

"}" +

"}";

view.loadUrl(javascript);

view.loadUrl("javascript:ResizeImages();");

}

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值