在imageView中显示最后拍摄的照片? (相机)

时间:2016-02-08 23:01:10

标签: android bitmap camera

所以实际上我有一个应用程序,您可以在其中拍摄自己的照片,然后将照片保存在手机内,名为MyCameraApp的创建文件夹中。

我想将MyCameraApp文件夹中最后拍摄的照片显示在我的活动中的imageview中。

我不知道如何做到这一点,我创建的每个教程或示例对我来说都很复杂,经过3-4小时的搜索我认为最好问这个社区,希望有人可以提供帮助我:)

这是我的代码:

 @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();
            } catch (FileNotFoundException e) {

            } catch (IOException e) {
            }
        }
    };

    private static File getOutputMediaFile() {
        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                "MyCameraApp");
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d("MyCameraApp", "failed to create directory");
                return null;
            }
        }
        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
                .format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator
                + "IMG_" + timeStamp + ".jpg");


        return mediaFile;
    }

我知道这听起来很愚蠢,但我想要这样的事情:

Get last created mediafile
imageView.setBitmap(lastCreatedMediaFile)

1 个答案:

答案 0 :(得分:1)

该过程可能如下:

  • 拍摄照片(你拥有它)
  • 将其保存到存储(您拥有它)
  • 从存储
  • 加载Bitmap
  • 使用setImageBitmap()

从存储中加载是通过BitmapFactory.decodeFile(*)使用相同的文件对象(在您的情况下为pictureFile)来实现的