webview中页面按钮获取手机图片并显示的问题

本文探讨了WebView加载服务器上HTML页面时无法直接获取本地图片的问题,并提供了解决方案:通过调用图库获取图片,转换为Base64编码,在页面上显示。文章详细解释了Base64编码参数的选择及图片压缩的重要性。

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

webview中页面按钮获取手机图片并显示的问题

10月1就这么愉快的过去了,今天突然一个激灵想到竟然忘了总结自己遇到的问题,万一哪天我得了老年痴呆可咋办啊,于是想起了记一下自己遇到的小坑来为我萌新程序员的道路上添加些新的标记!!

30号的时候,我的同事说:’‘我显示不了手机上的图片是为什么啊’’,我当时就一顿操作展示我在本地写的测试页面和调用以及显示,再后来我俩就大眼瞪小眼了(我的眼大,很大!!!),发现我是直接h5放到自己android工程下的,他的页面是放到服务器的所以…没法获取到本地地址.

问题

webview的调用服务器的html,在页面调用手机本地图片没法根据路径直接获取到本地图片的问题

解决办法

如果是服务器上的html src属性为”file://”+路径这个方法是无效的

办法:调用图库获取图片然后转成bast64在页面显示

注意: Base64.encodeToString(“你的二进制”, Base64.NO_WRAP);

CRLF 是使用CR LF这一对作为一行的结尾而不是Unix风格的LF
DEFAULT 这个参数是默认,使用默认的方法来加密
NO_PADDING 这个参数是略去加密字符串最后的”=”
NO_WRAP 这个参数意思是略去所有的换行符(设置后CRLF就没用了)
URL_SAFE 这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/

所以我们用NO_WRAP然后在前面加上 ‘data:’+这个是你的文件类型+’;base64,'

另外记得图片进行压缩一下 毕竟耗时还是需要解决的, 压缩+缓存+bast64基本就够了,当然大佬们一定有更加优秀的方案了.我只是自己学习并记录下,如有错误还望各位大佬给与指点!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值