我的应用有一个帖子按钮。当用户点击它时,相机将直接打开,以便他可以拍照。
问题是,当用户捕获图片并单击勾选按钮时,应用程序崩溃。
我想在用户捕捉图片后转到下一个活动
这是我的代码
buttonSortCap.setOnClickListener(new btnTakePhotoClicker());
这是btnTakePhotoClicker类
class btnTakePhotoClicker implements Button.OnClickListener{
public void onClick(View v){
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, CAM_REQUEST);
}
}
这是将图像放入位图的活动
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAM_REQUEST){
Bitmap thum = (Bitmap) data.getExtras().get("data");
imgTakenPhoto.setImageBitmap(thum);
}
...
}
这是它在Android Studio中显示的内容
4-17 12:49:44.625 2278-2278/com.example.barakah E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.barakah, PID: 2278
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1313, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.example.barakah/com.example.barakah.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3365)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3408)
at android.app.ActivityThread.access$1300(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
任何帮助都将不胜感激。
答案 0 :(得分:0)
我认为您需要使用以下内容 -
if (requestCode == CAM_REQUEST && resultCode == RESULT_OK)
答案 1 :(得分:0)
首先,在这种情况下数据意图没有任何额外的东西,你需要调用它的getData()方法。其次,它返回图像的uri而不是实际图像。请尝试使用此代码:
if (requestCode == CAM_REQUEST && resultCode == Activity.RESULT_OK) {
Uri image_uri = data.getData();
Bitmap bmp = MediaStore.Images.Media.getBitmap(this.getContentResolver(), image_uri);
imgTakenPhoto.setImageBitmap(bmp);
}