mr5/icarus-android

请问如何显示本地图片?

Closed this issue · 5 comments

现在的需求是要先显示本地图片,等编辑完成再统一上传所有的图片,上传完获得url替换之前显示本地图片的部分。

mr5 commented

如果有本地路径的话直接用本地路径试试,可能有安全问题会被阻止。那可以获取这张图片 base64 编码,然后插入一个连接为 data:image/jpeg;base64,base64编码字符串 的图片, image/jpeg 是 mine type,根据实际情况替换下。

mr5 commented

保存时候,需要先取出编辑器内容,然后使用 jsoup 解析出这些图片,上传后替换掉。其实现在很少会这么做了,因为图片多的话,会导致保存速度过慢,绝大多数的富文本编辑器都是选图后直接上传插入。

直接用本地路径测试可以,谢谢回复。
选图上传直接插入的话,图片显示会有延时,再加上压缩时间的话,延迟挺明显的,请问这个要怎么解决?

mr5 commented

常规做法是先插入一个占位 loading 图片,不过这样做有风险,图片没上传完,用户就直接保存了,最好再加个记号标记下。之前项目中的做法是使用安卓原生模态窗口显示图片上传 loading 状态,一般这个时间不会很长,2~3s 左右差不多了,大多数人还是能接受的,网速再慢点的话用户自己就会有预期。但是你全部叠加在一起一次性上传的时候,由于请求 body 过大很有可能会保存失败,而且等候时间也更长,更容易烦躁。后期我考虑加上自动处理图片 loading 状态的功能,目前没有时间添加新的 feature。

学到了,谢谢!