Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在ImageView中显示图像_Android_Imageview_Android Camera_Android Imageview_Android Image - Fatal编程技术网

Android 如何在ImageView中显示图像

Android 如何在ImageView中显示图像,android,imageview,android-camera,android-imageview,android-image,Android,Imageview,Android Camera,Android Imageview,Android Image,所以我试图在ImageView中显示捕获的图像,但由于某些原因,我的ImageView保持黑色。如果我从drawable文件夹中选择一个图像,它会工作。捕获的图像也存在于正确的文件夹中 摄像机的目的是: Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri()); startActiv

所以我试图在ImageView中显示捕获的图像,但由于某些原因,我的ImageView保持黑色。如果我从drawable文件夹中选择一个图像,它会工作。捕获的图像也存在于正确的文件夹中

摄像机的目的是:

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
    startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

以下是我尝试过的事情:

一,

我修改了上面的方法调用,因此它为上面的方法提供了一个文件而不是Uri

二,

三,

我试图使用
Bitmap photo=(Bitmap)data.getExtras().get(“data”)也是,但我的应用程序在相机应用程序关闭后立即崩溃。由于某种原因,数据返回null。这是崩溃日志:

10-14 10:38:10.728  32275-32275/com.example.debt E/AndroidRuntime? FATAL EXCEPTION: main
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.example.debt/com.example.debt.ScanReceiptActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3184)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3227)
            at android.app.ActivityThread.access$1100(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4872)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.example.debt.ScanReceiptActivity.onActivityResult(ScanReceiptActivity.java:78)
            at android.app.Activity.dispatchActivityResult(Activity.java:5375)
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3180)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3227)
            at android.app.ActivityThread.access$1100(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4872)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)

我在LG P880上运行了该应用程序。

您是否尝试过将
CAMERA\u PIC\u REQUEST
更改为
CAMERA\u REQUEST

Intent cameraIntent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());

startActivityForResult(cameraIntent, CAMERA_REQUEST);
捕获图像后,您将在ActivtyResult中获得结果

if (requestCode == CAMERA_REQUEST) {  
    Bitmap photo = (Bitmap) data.getExtras().get("data"); 
}

我在活动顶部定义了该变量:
private static final int-CAMERA\u PIC\u REQUEST=1。我也喜欢那个if分支。我测试过了。如果我使用
Bitmap photo=(Bitmap)data.getExtras().get(“data”)我的应用程序在相机应用程序关闭后立即崩溃。@Timbotbo发布你的日志,不要使用你定义的
相机图片请求
,用
相机图片请求
试试看它是否有问题difference@timbotombo还可以尝试
startActivtyForResult(cameraIntent,1337)
当我没有定义
CAMERA\u PIC\u REQUEST
CAMERA\u REQUEST
时,无法解析该变量。我在上面的帖子中添加了坠机报告。我试着用手机上的图像设置ImageView,它不仅被捕获,而且意识到它也不起作用——黑色的ImageView。所以我假设这个问题与摄像机无关。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST) {
        ImageView receiptImage = (ImageView) findViewById(R.id.result_image);

        Uri receiptUri = Uri.parse("/receipts/3.png");

        try {
            InputStream inputStream = getContentResolver().openInputStream(receiptUri);
            Drawable drawable = Drawable.createFromStream(inputStream, null);
            receiptImage .setImageDrawable(drawable);
        } catch (FileNotFoundException e) {}
    }
}
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST) {
        ImageView receiptImage = (ImageView) findViewById(R.id.result_image);
        receiptImage.setImageBitmap(BitmapFactory.decodeFile("/receipts/3.png"));  
    }
}
10-14 10:38:10.728  32275-32275/com.example.debt E/AndroidRuntime? FATAL EXCEPTION: main
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.example.debt/com.example.debt.ScanReceiptActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3184)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3227)
            at android.app.ActivityThread.access$1100(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4872)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.example.debt.ScanReceiptActivity.onActivityResult(ScanReceiptActivity.java:78)
            at android.app.Activity.dispatchActivityResult(Activity.java:5375)
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3180)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3227)
            at android.app.ActivityThread.access$1100(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4872)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
Intent cameraIntent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());

startActivityForResult(cameraIntent, CAMERA_REQUEST);
if (requestCode == CAMERA_REQUEST) {  
    Bitmap photo = (Bitmap) data.getExtras().get("data"); 
}