【问题标题】:Display last captured photo in a imageView? (Camera)在 imageView 中显示最后拍摄的照片? (相机)
【发布时间】:2016-02-08 23:01:10
【问题描述】:

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

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

我不知道该怎么做,我创建的每个教程或示例对我来说看起来都非常复杂,经过 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)

【问题讨论】:

    标签: android bitmap camera


    【解决方案1】:

    过程可能如下:

    • 拍照(你有)
    • 保存到存储中(你有它)
    • 从存储中加载Bitmap
    • 使用setImageBitmap()

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

    【讨论】:

    • 你的意思是这样的吗?位图 = BitmapFactory.decodeFile(pictureFile); ImageView im3 = (ImageView) findViewById(R.id.imageView3); im3.setImageBitmap(位图);
    • 其实我不知道我做错了什么,但是使用这段代码我得到“无法将 BitmapFactory 中的 decodeFile (java.lang.String) 应用于 (java.io.file)”错误.
    • 使用 pictureFile.getAbsolutePath() 以字符串形式获取路径。一定要提高你的 Java 知识一点点 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多