android动态图片适配,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
"{"
+ "var img = objs[i]; " +
" img.style.maxWidth = '100%'; img.style.height = 'auto'; " +
"}" +
"})()");
}
我们再来看看图片自应手机屏幕后的效果图:
总结:
我们可以看到适配后的效果还是蛮不错的,流程是加载完页面后,重置img标签中图片的宽度和高度,到这里就完成了。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。
时间: 2019-07-06
android动态图片适配,Android适配利用webview加载后图片显示过大的问题解决相关推荐
- android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片
图形图像实践 android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片 android全平台编译libpng并基于ANativeWindow加载PNG图片 概 ...
- webview加载html图片不显示图片,WebView加载网页不显示图片解决办法
对于大家来讲WebView肯定很熟悉,因为我们在日常开发中经常用到它.所以对于它的一些基本用法我就不在这啰嗦了,直接进入正题. 我遇到的问题就是在使用WebView加载网页的时候图片不显示(我手机系统 ...
- 利用web实现android的界面,利用WebView加载手机端网页实现APP封装
**思路 : ** 安卓端只使用一个Activity 此Activity中只包含WebView这个控件 并且隐藏此Activity的标题栏 这样只要我们前端对手机浏览器的适配做的很好 我们这个WebV ...
- Webview加载本地图片的方案对比
前言 先讲讲为什么会有这篇blog,话说前几天做个模块,要求是这样的: 做一个webview的页面,功能类似于微信发朋友圈一样,要求能上传本地图片到webview中进行展示,并按用户喜好添加和删除,当 ...
- flutter webview加载http图片失败处理
1.简介 开始接手flutter项目,项目flutter版本2.5.3,目前最新2.10.3. 项目中使用webview为 flutter_webview_pro 1.0.0 源码修改版,已经支持we ...
- WebView加载html图片不显示问题
参考链接 [1] webview加载https链接(终极解决方案,包括https链接加载http图片显示失败) [2] Android WebView 图片显示不了 http和https混合问题 近期 ...
- 关于WebView加载URL时显示一片空白的问题
问题: 当用WebView加载URL时,WebView只是显示一片空白,而没有正常加载所需要的内容: 1>布局文件: <RelativeLayout xmlns:android=" ...
- android webview加载html图片自适应手机屏幕大小点击查看大图
我们在开发中,显示信息详情时,一般后台会给出html文本,在android端一般采用webview控件来展示,但是后台给出的html文本一般是给电脑端用的,没有自适配手机,导致手机端图片显示过大,需要 ...
- Android:WebView加载url网页显示不完整解决办法
WebView基本用法 如果想要在APP里面加载url网页,或者html代码,首先我们会想到WebView,它的基本用法如下: webview_layout.xml <?xml version= ...
最新文章
- MDK调试STM32出现“could not stop cortex-m device”解决办法
- mysql 快速入门_MySql快速入门
- ustc小道消息20211216
- oop中构造函数编写的注意事项
- Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】
- 卡方 python_卡方优度检测 (Python 实现) --基于jupyter
- Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
- 记一次解决问题的掉坑过程
- java后端获取客户端(用户)真实ip,原理
- 两车相撞的力怎么计算_两车都向中间并线时相撞 算谁的责任
- 系统集成资质-2009年5月系统集成项目管理工程师真题-1
- Hadoop 入门笔记
- 微信小程序底部导航栏配置
- 计算机知识动画片,这些好看的动画片里竟然藏着许多知识点!(内附2019年观影日历)...
- 记录一次紫狐Rootkit应急响应过程
- SoundNet:根据声音来识别场景环境实践
- 文件服务器怎么限制速度,文件服务器的速度
- Java 访问MySQL的小例子
- 18.鸡尾酒疗法C语言
- Several alternative term weighting ~~ ——3. Proposed unsupervised term weighting schemes 提出的无监督词项加权方案
热门文章
- 如何在 PDF 中搜索并准确找到您要查找的文本内容
- 岁月悠悠,衰微只及肌肤;热忱抛却,颓废必致灵魂
- 仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
- 概率统计——三扇门游戏与贝叶斯定理
- haoop的相关介绍及概念
- ros::tf中的插值函数
- linux rman删除备份,【RMAN】【RMAN命令】DELETE 命令(5)--删除特定备份集(不提示)
- 她,快手上市中最隐秘的富豪:一笔赚回百亿美元
- 通信与信号处理基础知识总结 基础概念
- 什么是ip地址什么是网关_一文看懂什么是网关、DNS、子网掩码、MAC地址