【发布时间】:2014-05-20 23:41:22
【问题描述】:
好的,这显然是一个重复的问题,但在所有其他问题中我都没有找到可行的解决方案......
所以,我正在尝试用相机拍照并在 imageview 中显示此图像...现在,它是否有效或其他什么都不重要,所以我不处理这个...
这是我的代码:
运行相机:
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v) {
Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(takePicture.resolveActivity(getPackageManager()) != null) {
File image = null;
try {
image = createImageFile();
} catch (IOException ex) {
finish();
}
if(image != null) {
takePicture.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image));
startActivityForResult(takePicture, 1);
}
}
}
});
createImageFile方法:
private File createImageFile() throws IOException {
String name = System.currentTimeMillis() / 1000 + "";
File dir = getExternalFilesDir(null);
File image = File.createTempFile(name, ".png", dir);
path = "file:" + image.getAbsolutePath();
return image;
}
和onActiviyResult 方法:
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && requestCode == 1) {
String path = data.getExtras().getString(MediaStore.EXTRA_OUTPUT);
File f = new File(path);
Bitmap b = Bitmap.createScaledBitmap(BitmapFactory.decodeFile(f.getAbsolutePath()), 50, 50, true);
iv.setImageBitmap(b);
} else {
}
}
要提到的重要一点是,我的应用程序从未达到onActivityResult 方法,但在我拍照并单击保存以保存图片后卡在某个地方(此屏幕显示在拍摄图像后,这不是我实现的,但它就是它的方式在 Android 上)
这是我的日志:
04-08 14:57:37.230 5976-5976/hr.fer.dummyproj E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {hr.fer.dummyproj/hr.fer.dummyproj.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.deliverResults(ActivityThread.java:3500)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543)
at android.app.ActivityThread.access$1200(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at hr.fer.dummyproj.MainActivity.onActivityResult(MainActivity.java:84)
at android.app.Activity.dispatchActivityResult(Activity.java:5563)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3496)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3543)
at android.app.ActivityThread.access$1200(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
更新
所以,我发现问题出在哪里。如果将图片保存在文件中,看起来相机活动不会在 Intent 中返回任何内容。因此,在onResultActivity 中,数据为空。
为了让它工作,我保存了 Uri 并在 onResultActivity 中获取图片
【问题讨论】:
-
请粘贴您的日志条目...
-
你能告诉我们你的工作代码吗?另外,@y.dixit 我尝试了该教程,但使用确切的代码对我不起作用。
-
@MrPablo 您能否具体说明您面临的具体问题...
-
@y.dixit 我不太清楚。很简单,我尝试了官方教程,它给了我一个错误。
标签: android camera android-activity imageview