最近需要用到调用系统相机拍摄照片的功能,于是就直接调用系统的相机进行拍照,发现返回的bitmap存储之后都是非常模糊的

调用系统相机拍摄照片,由于StartActivityForResult过时,改用了新写法

        val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)val startActivity =registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {if (it.data!=null&&it.resultCode == Activity.RESULT_OK) {//获取返回的bitmap图片(缩略图)val bitmap = it?.data?.extras?.get("data") as Bitmap//图片存储本地ImageUtils.save(bitmap,file,Bitmap.CompressFormat.JPEG)}}startActivity.launch(intent)

我特意截屏做了一下对比,在拍摄界面截图及后来通过ActivityForResult保存的bitmap图片,很明显看出图片已经变模糊了

那这个问题要怎么解决呢?于是开启了曲线救国策略,既然返回的bitmap是缩略图,那我们就直接给一个图片文件保存路径,然后在回调是直接加载文件路径就可以显示原图

     //图片存储路径val fileName =File(getOutDirectory(this), "${System.currentTimeMillis()}.jpg")val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)//添加存储图片路径参数intent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(this@ResultForRecordActivity,"$packageName.fileprovider", fileName))val startActivity =registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {if (it.resultCode == Activity.RESULT_OK) {//回调成功,可以加载fileName图片(高清拍摄图片)}}startActivity.launch(intent)

这里使用FileProvider来传入图片路径主要原因是对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常,下一篇博客来写一下这个 exposed beyond app through ClipData.Item.getUri()的异常该怎么处理

android调用系统相机返回图片模糊相关推荐

  1. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题

    Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...

  2. android 调用系统相机拍照 获取原图

    博客源址:android 调用系统相机拍照 获取原图 博客时间:2013-04-23 11:08 好吧,为了这个问题又折腾了一整天.之前在网上找来的方法,如果在onActivityResult中直接用 ...

  3. android调用系统相册将图片复制到指定目录下并显示复制进度

    最近在做一个类似文件管理器,app是采用本地数据库模拟目录的方式,管理与其手机储存对应的存储文件.那么需求来了,需要在app中添加一张从本地相册中选出来的照片,并将照片复制到自己app指定的目录下.这 ...

  4. Android调用系统相机拍照并保存到指定位置

    Android调用系统相机拍照并保存到指定位置 @Click(R.id.btn_takePhoto)void onclick() {Intent intent = new Intent(MediaSt ...

  5. android固定位置拍照,Android调用系统相机拍照并保存到指定位置

    Android调用系统相机拍照并保存到指定位置 @Click(R.id.btn_takePhoto) void onclick() { Intent intent = new Intent(Media ...

  6. android调用系统相机并获取图片

    如果不是特别的要求,通过拍照的方式取得图片的话,我们一般调用系统的拍照来完成这项工作,而没必要再自己去实现一个拍照功能.调用系统相机很简单,只需要一个intent就可以跳转到相几界面,然后再通过onA ...

  7. android相机保存文件为空,android 调用系统相机拍照,返回的data为null

    最近做项目,需要拍照功能,于是就想简单的调用系统相机来完成这一需求(当然,如果想要个性化一点的,也可以自定义camera去实现,这里暂时不做). if(Environment.getExternalS ...

  8. Android调用系统相机和相册(更换微信头像)

    最近做了调用系统相机和相册,在其他博客中看到还有对图像进行剪切,大家都知道,我们在玩微信的时候,头像更换是方形图片,接下来我们就对这种情况具体进行描述: 必要的权限: <uses-permiss ...

  9. Android调用系统相机拍照

    参考: Taking Photos Simply FileProvider 项目地址(好多人找我要,我传到百度云啦,大家自取):链接:https://pan.baidu.com/s/1nWsoE0eS ...

最新文章

  1. 转载:KOF97八神攻防战
  2. SAP UI5 应用开发教程之十五 - 对话框和 Fragments 的使用方式
  3. 【LeetCode之C#解法】 移动零、爬楼梯
  4. Android中你可能忽略的知识点(1)-分辨率那些事
  5. 设置子路由_多台路由器如何串联(级联)?
  6. Dell’Oro 5年期数据中心报告预测25G/100G端口速率市场快速上升
  7. 2017c语言国二试题,国家计算机c语言二级考试试题
  8. 手把手教你提取WOW中的所有声音文件
  9. 通过Atomsk、Ovito和lammps进行高熵合金的多晶体建模及渲染
  10. linux sata 3驱动下载,linux – SSD SATA3驱动器可能存在的问题
  11. 【神经网络】单层感知器
  12. ListView演练 - 带有组头的汽车品牌展示
  13. 初步认识C语言中的选择和循环语句
  14. java js hexmd5_JAVA与JS在MD5上问题
  15. 乐观数据:企业抖音蓝V账号获取流量运营的四个技巧
  16. HDU 6047 Maximum Sequence 思维
  17. 攻防世界 MISC新手练习区 刷12道题题所得的思路和方法
  18. Windows 11 即将问世 | Windows 10 和 Windows 11 该如何抉择
  19. 手写简易版web框架
  20. kubeadm方式搭建k8s集群

热门文章

  1. 制作的自媒体短视频很模糊?教你3个方法,让视频变清晰
  2. android 背景描边,Android告别使用shape标签,自定义实现圆角、背景色、描边Button...
  3. matlab 双音频信号的检测,双音频(DTMF)信号的产生与检测.doc
  4. 申请专利 服务器拒收怎么找回,找回或修改登录密码的方法及装置专利_专利申请于2014-10-23_专利查询 - 天眼查...
  5. 移动端的开发详解与1px边框等注意事项
  6. Windows优化大师已经成为“流氓大师”
  7. 超星计算机技术基础 vb,程序设计技术(VB)-中国大学mooc-题库零氪
  8. ROS 2 Dashing Diademata安装和使用文档(含Linux、Windows和OS X)
  9. Python 人工智能入门须知
  10. kafka.common.InconsistentClusterIdException: The Cluster ID doesn‘t match stored clusterId Some()