求解自定义相机短时间拍多张照片导致OOM如何解决

格子林ll 格子林ll 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我现在在做一款自定义相机,需要有一个快速拍照的功能,就是用户可以短时间内一直点那个拍照按钮,不需要等之前那张照片处理完,由于底层相机的原因,我没张图片都需要做旋转,有些需要做剪裁,所以目前我都得转成Bitmap来处理
现在的一个方案是这样的:
用户点击一下拍照,我就开一个线程,这个线程只是用来实现文件流保存图片的,不会导致OOM,同时每次开启一个线程我就把这个线程放到List容器中,线程执行结束后移除,当list容器中线程个数为0时就是用户这短时间里面要的图片都用文件流的形式保存完了
这时候我会开启另一个线程,会优先处理最后一张图片来给用户提前预览,然后紧接着用for循环对之前未处理的图片进行一张张的处理,每张图片我最后都有recycle和值为null回收
但是现在还是会一直出现OOM的情况,好多方法都试过了,目前真的束手无策,目前自身技术也还处于刚起步,希望各位大神指点一下思路或者解决的方案,我不知道byte[]数组是否可以直接进行旋转剪裁的操作而不需要读成Bitmap,是否需要到底层实现?
真心求指点,已经卡了好久了,跪谢!!
...全文

相关推荐

评论 21
收藏 已收藏
分享
返回顶部
格子林ll
Android 80,490 成员 91,375 内容