前言

最近在开发过程中,需要用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

"{"

+ "var img = objs[i]; " +

" img.style.maxWidth = '100%'; img.style.height = 'auto'; " +

"}" +

"})()");

}

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

总结:

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

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

时间: 2019-07-06

android动态图片适配,Android适配利用webview加载后图片显示过大的问题解决相关推荐

  1. android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片

    图形图像实践 android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片 android全平台编译libpng并基于ANativeWindow加载PNG图片 概 ...

  2. webview加载html图片不显示图片,WebView加载网页不显示图片解决办法

    对于大家来讲WebView肯定很熟悉,因为我们在日常开发中经常用到它.所以对于它的一些基本用法我就不在这啰嗦了,直接进入正题. 我遇到的问题就是在使用WebView加载网页的时候图片不显示(我手机系统 ...

  3. 利用web实现android的界面,利用WebView加载手机端网页实现APP封装

    **思路 : ** 安卓端只使用一个Activity 此Activity中只包含WebView这个控件 并且隐藏此Activity的标题栏 这样只要我们前端对手机浏览器的适配做的很好 我们这个WebV ...

  4. Webview加载本地图片的方案对比

    前言 先讲讲为什么会有这篇blog,话说前几天做个模块,要求是这样的: 做一个webview的页面,功能类似于微信发朋友圈一样,要求能上传本地图片到webview中进行展示,并按用户喜好添加和删除,当 ...

  5. flutter webview加载http图片失败处理

    1.简介 开始接手flutter项目,项目flutter版本2.5.3,目前最新2.10.3. 项目中使用webview为 flutter_webview_pro 1.0.0 源码修改版,已经支持we ...

  6. WebView加载html图片不显示问题

    参考链接 [1] webview加载https链接(终极解决方案,包括https链接加载http图片显示失败) [2] Android WebView 图片显示不了 http和https混合问题 近期 ...

  7. 关于WebView加载URL时显示一片空白的问题

    问题: 当用WebView加载URL时,WebView只是显示一片空白,而没有正常加载所需要的内容: 1>布局文件: <RelativeLayout xmlns:android=" ...

  8. android webview加载html图片自适应手机屏幕大小点击查看大图

    我们在开发中,显示信息详情时,一般后台会给出html文本,在android端一般采用webview控件来展示,但是后台给出的html文本一般是给电脑端用的,没有自适配手机,导致手机端图片显示过大,需要 ...

  9. Android:WebView加载url网页显示不完整解决办法

    WebView基本用法 如果想要在APP里面加载url网页,或者html代码,首先我们会想到WebView,它的基本用法如下: webview_layout.xml <?xml version= ...

最新文章

  1. MDK调试STM32出现“could not stop cortex-m device”解决办法
  2. mysql 快速入门_MySql快速入门
  3. ustc小道消息20211216
  4. oop中构造函数编写的注意事项
  5. Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】
  6. 卡方 python_卡方优度检测 (Python 实现) --基于jupyter
  7. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
  8. 记一次解决问题的掉坑过程
  9. java后端获取客户端(用户)真实ip,原理
  10. 两车相撞的力怎么计算_两车都向中间并线时相撞 算谁的责任
  11. 系统集成资质-2009年5月系统集成项目管理工程师真题-1
  12. Hadoop 入门笔记
  13. 微信小程序底部导航栏配置
  14. 计算机知识动画片,这些好看的动画片里竟然藏着许多知识点!(内附2019年观影日历)...
  15. 记录一次紫狐Rootkit应急响应过程
  16. SoundNet:根据声音来识别场景环境实践
  17. 文件服务器怎么限制速度,文件服务器的速度
  18. Java 访问MySQL的小例子
  19. 18.鸡尾酒疗法C语言
  20. Several alternative term weighting ~~ ——3. Proposed unsupervised term weighting schemes 提出的无监督词项加权方案

热门文章

  1. 如何在 PDF 中搜索并准确找到您要查找的文本内容
  2. 岁月悠悠,衰微只及肌肤;热忱抛却,颓废必致灵魂
  3. 仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
  4. 概率统计——三扇门游戏与贝叶斯定理
  5. haoop的相关介绍及概念
  6. ros::tf中的插值函数
  7. linux rman删除备份,【RMAN】【RMAN命令】DELETE 命令(5)--删除特定备份集(不提示)
  8. 她,快手上市中最隐秘的富豪:一笔赚回百亿美元
  9. 通信与信号处理基础知识总结 基础概念
  10. 什么是ip地址什么是网关_一文看懂什么是网关、DNS、子网掩码、MAC地址