android获取并显示camera拍摄或者本地图库的照片

最近项目在搞用户图片上传功能,要从本地选择图片或者camera拍摄的图片显示预览并上传,之前为了方便一直想着用别人的轮子来造车,结果各种问题,要么应用崩溃,要么适配性极差,最后没办法,只能返璞归真,使用系统提供的方式来获取照片.然而,开发并不是一帆风顺的,网上提供的解决方案都是使用bitmap获取图片,得到的图片分辨率比较低,虽然网上找了很多文章,但很多都是答非所问,又或者一大堆问题,还不如自己慢慢琢磨研究.

在之前找了好多参考文章之后,都没能解决问题,有点绝望,没想到自己琢磨倒是搞好了.下面分享一波,也记录一下,方便日后使用.

先来看看最终实现的效果吧:

                                         


效果比较简单,只涉及到图片uri获取和展示,至于文件上传一般都是通过文件路径得到file,然后上传,本文并不介绍上传功能,大家可以自行研究,文章重点只为解决获取camera和本地图片模糊问题,下面来具体说明一下实现思路.

  • 调用系统相机并设置输出路径
 这里理解起来并不困难,直接看代码吧:

private void takePhoto() {
    
    //跳转到新的Activity去拍照片
    //进来时就同时拥有两个权限,调用系统拍照
    String state = Environment.getExternalStorageState();
    if (state.equals(Environment.MEDIA_MOUNTED)) {
        Intent photoIn = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        String out_file_path = SAVED_IMAGE_DIR_PATH;
        
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值