Android启动相机拍照并返回图片
程序员文章站
2023-12-10 20:40:58
具体实现过程请看下面代码:
简单的调用了一下系统的拍照功能
代码如下所示:
//拍照的方法
private void opentakephoto(){...
具体实现过程请看下面代码:
简单的调用了一下系统的拍照功能
代码如下所示:
//拍照的方法
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;
以上代码附有注释,相信大家都可以看得吧,有哪些不明白的地方欢迎各位朋友给留言,我会在第一时间和大家取得联系的。谢谢!