首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android中将图片保存到图库?

如何在Android中将图片保存到图库?
EN

Stack Overflow用户
提问于 2017-01-02 22:03:35
回答 1查看 1.1K关注 0票数 0

我已经用Android Studio创建了一个相机,并希望将拍摄的图像保存到图库中。

我使用Camera2 Api,并不知道如何保存图片。

此外,我不知道我的照片存储在哪里。这个应用程序说:Saved: /storage/emulated/1.jpg

下面是一些代码:

代码语言:javascript
运行
复制
mFile = new File(Environment.getExternalStorageDirectory() + "1.jpg");

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
        = new ImageReader.OnImageAvailableListener() {

    @Override
    public void onImageAvailable(ImageReader reader) {
        mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile));
    }

};

private static class ImageSaver implements Runnable {

    /**
     * The JPEG image
     */
    private final Image mImage;
    /**
     * The file we save the image into.
     */
    private final File mFile;

    public ImageSaver(Image image, File file) {
        mImage = image;
        mFile = file;
    }

    @Override
    public void run() {
        ByteBuffer buffer = mImage.getPlanes()[0].getBuffer();
        byte[] bytes = new byte[buffer.remaining()];
        buffer.get(bytes);
        FileOutputStream output = null;
        try {
            output = new FileOutputStream(mFile);
            output.write(bytes);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            mImage.close();
            if (null != output) {
                try {
                    output.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}

下一个问题是,我不知道如何存储更多的照片。在这种情况下,1.jpg总是被覆盖。

EN

回答 1

Stack Overflow用户

发布于 2017-01-02 22:09:02

要在图库中添加图片,请执行以下操作:

代码语言:javascript
运行
复制
private void galleryAddPic() {
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    File f = new File(mCurrentPhotoPath);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    this.sendBroadcast(mediaScanIntent);
}

See here

要保存多个图片,请为每个新图片生成一个新名称(使用日期和时间或UUID)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41428309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档