看文章咯,反正最近被相机这块搞的有点疯。
android拍照获得图片URI为空的处理方法
Android_照相机Camera_调用系统照相机返回data为空

拍照的方法:

  public void takePhoto() {        destoryBimap();        String state = Environment.getExternalStorageState();        if (state.equals(Environment.MEDIA_MOUNTED)) {            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");//这个是指定的uri地址,所以注释掉 如果指定了目标uri,data就没有数据,如果没有指定uri,则data就返回有数据 //            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);            startActivityForResult(intent, PHOTO_WITH_CAMERA);        } else {            Toast.makeText(getActivity(), "没有SD卡", Toast.LENGTH_LONG).show();        }    }

onActivityResult方法中接收。

  Bundle bundle =data.getExtras();  //获取相机返回的数据,并转换为Bitmap图片格式                        aphoto = (Bitmap)bundle.get("data");                    if (data.getData()!=null){                     imageUri =data.getData();                    }else {                        imageUri = Uri.parse(MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), aphoto, null,null));                    }//                    裁剪照片的方法                    copePhoto(imageUri);

裁剪的方法。

   public void copePhoto(Uri uri){        destoryBimap();        String state = Environment.getExternalStorageState();        if (state.equals(Environment.MEDIA_MOUNTED)) {            Intent  intent = new Intent();            intent.setAction("com.android.camera.action.CROP");            intent.setDataAndType(uri,"image/*");            intent.putExtra("cope","true");            intent.putExtra("aspectX", 1);// 裁剪框比例            intent.putExtra("aspectY", 1);            intent.putExtra("outputX", 200);// 输出图片大小            intent.putExtra("outputY", 150);            intent.putExtra("return-data", true);            startActivityForResult(intent,PHOTO_COPE);        } else {            Toast.makeText(getActivity(), "没有SD卡", Toast.LENGTH_LONG).show();        }    }

onActivityResult方法中接收。

 Bundle bundle = data.getExtras(); photo = bundle.getParcelable("data");

完。

更多相关文章

  1. Android学习笔记八之BroadCastReceiver
  2. Unity 调用android插件
  3. [置顶] 使用ContentProvider共享数据
  4. Android中刷新界面的二种方法
  5. android事件分发机制dispatch
  6. Android(安卓)Context Menu和Options Menu菜单的区别
  7. Android(安卓)耗时代码(ANR)的查找检测和分析解决 TraceView的使
  8. android gridview布局添加多个title
  9. android 定义 程序 Scheme 接收特定URI开启Activity

随机推荐

  1. 这样的高可用,我不要!
  2. 2020_2_5
  3. MySQL痿了,放不下这么多数据!
  4. Linux生产环境上,最常用的一套“Sed“技巧
  5. 实战Spring Boot 2.0系列(二) - 全局异常
  6. Spring Cloud整合Thrift RPC(二) - sprin
  7. 2年java,蚂蚁一面,卒
  8. 到处是map、flatMap,啥意思?
  9. 实战Spring Boot 2.0系列(三) - 使用@Asy
  10. 学习LINUX的第15天