当前位置: 首页 > 编程笔记 >

Android适配利用webview加载后图片显示过大的问题解决

尹乐邦
2023-03-14
本文向大家介绍Android适配利用webview加载后图片显示过大的问题解决,包括了Android适配利用webview加载后图片显示过大的问题解决的使用技巧和注意事项,需要的朋友参考一下

前言

最近在开发过程中,需要用webview控件来展示文章的详情页面,流程是通过请求后台数据,然后用控件加载,而后台返回的文章详情页面是直接网页端使用的,并没有对移动端进行适配,导致webview加载后文章详情展示的图片过大,需要左右移动才能查看完整的图片,这显然给用户的体验很差,这个时候就需要我们移动端进行做适配了。

先来看看没有做适配之前的效果:

我们可以看到加载后的文章详情中的图片只显示了一部分。

下面来看看解决方案:

webview的基本使用流程这里我就不重复说明了,本篇针对的是文章详情加载完成后出现的情况,这里我们使用的方法是:通过js脚本,重置img标签中图片的宽度和高度。

使用步骤:

1、此方法需要使用js,所以webview设置属性中一定要添加下面这句,不然无效。

 webView.getSettings().setJavaScriptEnabled(true);//支持javascript

2、  给webview重新设置WebViewClient

 webView.setWebViewClient(new ArticleWebViewClient());

3、重写WebViewClient的onPageFinished方法

 private class ArticleWebViewClient extends WebViewClient {

  @Override
  public void onPageFinished(WebView view, String url) {
   super.onPageFinished(view, url);
   //重置webview中img标签的图片大小
   imgReset();
  }

  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
   view.loadUrl(url);
   return true;
  }
 }

 /**
  * 对图片进行重置大小,宽度就是手机屏幕宽度,高度根据宽度比便自动缩放
  **/
 private void imgReset() {
  webView.loadUrl("javascript:(function(){" +
    "var objs = document.getElementsByTagName('img'); " +
    "for(var i=0;i<objs.length;i++) " +
    "{"
    + "var img = objs[i]; " +
    " img.style.maxWidth = '100%'; img.style.height = 'auto'; " +
    "}" +
    "})()");
 }

我们再来看看图片自应手机屏幕后的效果图:

总结:

我们可以看到适配后的效果还是蛮不错的,流程是加载完页面后,重置img标签中图片的宽度和高度,到这里就完成了。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍Android中超大图片无法显示的问题解决,包括了Android中超大图片无法显示的问题解决的使用技巧和注意事项,需要的朋友参考一下 发现问题 最近在做图片浏览功能时遇到了一个很蛋疼的问题,在开启硬件加速情况下,超大图无法正常显示(图的长宽有一个大于9000),而且程序不会crash,只是图片加载不出来,View显示为黑色。通过查看日志,发现系统打印出了下面的内容: 从日志内容可以看

  • 本文向大家介绍Android ImageView 不显示JPEG图片的问题解决,包括了Android ImageView 不显示JPEG图片的问题解决的使用技巧和注意事项,需要的朋友参考一下 Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里需要设置成setVisibility(View.VISIBLE),

  • 本文向大家介绍nginx解决图片显示过慢,下载不完全的问题,包括了nginx解决图片显示过慢,下载不完全的问题的使用技巧和注意事项,需要的朋友参考一下 写在前面 最近,一名读者跟我说他通过浏览器访问自己的服务器时,图片显示的非常慢,以至于在浏览器中都无法完全加载出来,下载文件时,更是恼火,文件根本就无法完全下载下来。而且奇怪的是这位读者所在的网络是没啥问题的。于是,我便开始帮他排查各种问题。。。

  • 本文向大家介绍Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0),包括了Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)的使用技巧和注意事项,需要的朋友参考一下 Feature: 点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像。 Problem: 拍好照片,点击裁剪,弹Toast“无法加载此图片”。 Sol

  • 本文向大家介绍详解Android WebView加载html片段,包括了详解Android WebView加载html片段的使用技巧和注意事项,需要的朋友参考一下 这里我先简单描述一下需求:服务器返回的是html页面的一部分带有标签的内容。 解决的思路是:将服务器返回的内容片段拼凑成一个完整的页面。 下面直接上核心代码: 这里是WebView一些配置 笔者在Nexus6 7.0上面测试偶尔出现,h

  • 本文向大家介绍Vue动态加载图片在跨域时无法显示的问题及解决方法,包括了Vue动态加载图片在跨域时无法显示的问题及解决方法的使用技巧和注意事项,需要的朋友参考一下 写在前面 小记,就简单写了 。问题:VUE开发时因为要访问后端的接口所以要配置请求转发,如果直接转发全部请求,那么VUE动态绑定的src也会转发到后端,因为图片在前端,所以会收到404 NOT FOUND的报错。 常规的请求转发 在vu