Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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_Android Camera - Fatal编程技术网

Android 显示在ImageView中拍摄的最后一张照片不工作

Android 显示在ImageView中拍摄的最后一张照片不工作,android,android-camera,Android,Android Camera,我一直在尝试在我的活动中加入ImageView,以显示最后一张用相机拍摄的照片。ImageView基本上是右下角的一个缩影,稍后将用作应用程序库的onclick意图。。我想让它显示最后一张照片,当你打开应用程序时,显示其目录中的最新照片。这是以下内容的java代码部分: private PictureCallback getPictureCallback() { PictureCallback picture = new PictureCallback() { @Ove

我一直在尝试在我的活动中加入ImageView,以显示最后一张用相机拍摄的照片。ImageView基本上是右下角的一个缩影,稍后将用作应用程序库的onclick意图。。我想让它显示最后一张照片,当你打开应用程序时,显示其目录中的最新照片。这是以下内容的java代码部分:

private PictureCallback getPictureCallback() {
    PictureCallback picture = new PictureCallback() {

        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            File pictureFile = getOutputMediaFile();

            if (pictureFile == null) {
                return;
            }
            try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();
                //
                final ImageView GalleryShortcut = (ImageView) findViewById(R.id.galleryshortcut);
                BitmapFactory.Options scalingOptions = new BitmapFactory.Options();
                scalingOptions.inSampleSize = camera.getParameters().getPictureSize().width / GalleryShortcut.getMeasuredWidth();
                final Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, scalingOptions);
                GalleryShortcut.setImageBitmap(bmp);
                GalleryShortcut.setVisibility(ImageView.VISIBLE);

            } catch (FileNotFoundException e) {
            } catch (IOException e) {
            }

            Preview.refreshCamera(Camera);
        }
    };
这是.xml ImageView代码:

   <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:adjustViewBounds="true"
        android:id="@+id/galleryshortcut"
        android:maxHeight="60dp"
        android:maxWidth="80dp"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:contentDescription="@null"/>

Crashlog:

09-14 11:09:23.784 2617-2617/cam.fornax.fornaxcam E/AndroidRuntime﹕ 致命异常:主 过程:cam.fornax.fornaxcam,PID:2617 java.lang.RuntimeException:无法恢复活动{cam.fornax.fornaxcam/cam.fornax.fornaxcam.FRNXCamera}:java.lang.RuntimeException:无法连接到相机服务 位于android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103) 位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 位于android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5417) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.RuntimeException:无法连接到相机服务 在android.hardware.Camera.(Camera.java:495) 打开(Camera.java:341) 在cam.fornax.fornaxcam.frnxamera.onResume(frnxamera.java:209) 位于android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258) 在android.app.Activity.performResume上(Activity.java:6312) 在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)上 位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 位于android.app.ActivityThread.-wrap11(ActivityThread.java)

你能试着打电话给:

调用
GalleryShortcut.setImageBitmap(bmp)后,
GalleryShortcut.invalidate()


如果不起作用,您必须在处理程序中运行图像设置。

谢谢您的回答!这对我不起作用。有关于这个的处理程序教程吗?我是一名初学者,找不到任何有助于我的链接。请看线程/ui android文档: