当前位置: 移动技术网 > 移动技术>移动开发>Android > Android启动相机拍照并返回图片

Android启动相机拍照并返回图片

2019年07月24日  | 移动技术网移动技术  | 我要评论

具体实现过程请看下面代码:

简单的调用了一下系统的拍照功能

代码如下所示:

//拍照的方法

 private void opentakephoto(){
  /**
  * 在启动拍照之前最好先判断一下sdcard是否可用
  */
  string state = environment.getexternalstoragestate(); //拿到sdcard是否可用的状态码
  if (state.equals(environment.media_mounted)){   //如果可用
   intent intent = newintent("android.media.action.image_capture");
   startactivityforresult(intent,take_photo);
  }else {
   toast.maketext(settingactivity.this,"sdcard不可用",toast.length_short).show();
  }
 }

拍完照片后,我们肯定视需要拿到我们已经拍好的照片去进行一些操作(例如,换头像、发带图状态等等),这时候我们就需要重写onactivityresult()方法,去拿到我们拍好的照片去进行操作,我们可以通过下面两种方式去拿到我们的照片,他的加过就封装在了我们的intent里面,我们只需要取出来即可:

@override
 protected void onactivityresult(int requestcode, int resultcode, intentdata) {
  super.onactivityresult(requestcode, resultcode, data);
  if (data!= null) {
   switch (requestcode) {
    case take_photo: //拍摄图片并选择
     //两种方式 获取拍好的图片
     if (data.getdata() != null|| data.getextras() != null){ //防止没有返回结果
      uri uri =data.getdata();
      if (uri != null) {
       photo =bitmapfactory.decodefile(uri.getpath()); //拿到图片
      }
      if (photo == null) {
       bundle bundle =data.getextras();
       if (bundle != null){
        photo =(bitmap) bundle.get("data");
       } else {
        toast.maketext(getapplicationcontext(), "找不到图片",toast.length_short).show();
       }
      }
      //处理图片
      //裁剪图片
     }
     break;

以上代码附有注释,相信大家都可以看得吧,有哪些不明白的地方欢迎各位朋友给留言,我会在第一时间和大家取得联系的。谢谢!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网