大佬教程收集整理的这篇文章主要介绍了使用Android相机拍摄图像后的空指针,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
//Using intent to open camera Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,CAMERA_CAPTURE);
在activityResult中:
protected void onActivityResult(int requestCode,int resultCode,Intent data) { if(resultCode==RESULT_OK) { if(requestCode==CAMERA_CAPTURE) { Bitmap pictTaken = null ; Bundle extras = data.getExtras(); if(extras.keySet().contains("data")) { pictTaken = (Bitmap) extras.get("data"); picUri = geTintent().getData(); } else{ picUri = geTintent().getData(); try { pictTaken = decodeUri(picUri); } catch (FileNotFoundException E) { // TODO Auto-generated catch block e.printStackTrace(); } } Intent cropIntent= new Intent (this,Crop.class); cropIntent.putExtra("data",picUri.toString()); cropIntent.putExtra("pict",pictTaken); cropIntent.putExtra("code","camera"); startActivity(cropIntent); } }
捕获并保存它后,该图像显示在下一个活动中,称为Crop.class@H_197_2@这是我的logcat
12-12 13:26:36.340: E/AndroidRuntime(23575): FATAL EXCEPTION: main 12-12 13:26:36.340: E/AndroidRuntime(23575): Process: com.example.cobaandroid,PID: 23575 12-12 13:26:36.340: E/AndroidRuntime(23575): java.lang.RuntimeException: Failure delivering result ResulTinfo{who=null,request=1,result=-1,data=Intent { act=inline-data (has extras) }} to activity {Com.example.cobaandroid/com.example.cobaandroid.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object reference 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.ActivityThread.deliverResults(ActivityThread.java:3368) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3411) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.ActivityThread.access$1300(ActivityThread.java:138) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.ActivityThread$H.handlemessage(ActivityThread.java:1247) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.os.Handler.dispatchmessage(Handler.java:102) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.os.Looper.loop(Looper.java:136) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.ActivityThread.main(ActivityThread.java:5050) 12-12 13:26:36.340: E/AndroidRuntime(23575): at java.lang.reflect.Method.invoke(Native Method) 12-12 13:26:36.340: E/AndroidRuntime(23575): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 12-12 13:26:36.340: E/AndroidRuntime(23575): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 12-12 13:26:36.340: E/AndroidRuntime(23575): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.toString()' on a null object reference 12-12 13:26:36.340: E/AndroidRuntime(23575): at com.example.cobaandroid.MainActivity.onActivityResult(MainActivity.java:226) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.Activity.dispatchActivityResult(Activity.java:5433) 12-12 13:26:36.340: E/AndroidRuntime(23575): at android.app.ActivityThread.deliverResults(ActivityThread.java:3364) 12-12 13:26:36.340: E/AndroidRuntime(23575): ... 9 more
我有一个问题要打开/使用在大多数Android设备上工作的相机,这个项目的主要目标在很大程度上取决于使用相机.请给我你的帮助,谢谢..
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File file=getOutputMediaFile(1); picUri = Uri.fromFile(filE); // create i.putExtra(MediaStore.EXTRA_OUTPUT,picUri); // set the image file startActivityForResult(i,CAPTURE_IMAGE);
其中getOutputMediaFile(int)将是,
/** Create a File for saving an image */ private File getOutputMediaFile(int typE){ File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES),"MyApplication"); /**Create the storage directory if it does not exist*/ if (! mediaStorageDir.exists()){ if (! mediaStorageDir.mkdirs()){ return null; } } /**Create a media file name*/ String timestamp = new SimpleDateFormat("yyyymMdd_HHmmss").format(new Date()); File mediaFile; if (type == 1){ mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_"+ timestamp + ".png"); } else { return null; } return mediaFile; }
最后,
@Override public void onActivityResult(int requestCode,Intent data) { if (resultCode == Activity.RESULT_OK) { Intent i; switch (requestCodE) { case CAPTURE_IMAGE: //THIS IS YOUR Uri Uri uri=picUri; break; } } }
干杯….:)
以上是大佬教程为你收集整理的使用Android相机拍摄图像后的空指针全部内容,希望文章能够帮你解决使用Android相机拍摄图像后的空指针所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。