如何将图像保存到图库 Android 应用程序
Posted
技术标签:
【中文标题】如何将图像保存到图库 Android 应用程序【英文标题】:How to save image into gallery Android ap 【发布时间】:2016-01-26 00:30:37 【问题描述】:我正在制作一个 android 应用程序,当点击一个按钮时,它会打开相机,但是在拍照后图像不会保存。我希望能够将它保存到我的画廊相册中。
public void onClickbtnCamera(View v)
Intent intent1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uriSavedImage=Uri.fromFile(new File("/storage/emulated/0/DCIM/Camera/"));
intent1.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(intent1,3);
【问题讨论】:
你可能想检查一下:***.com/a/8722494/3390783 【参考方案1】:您正在传入EXTRA_OUTPUT
中的目录。 EXTRA_OUTPUT
需要指向一个文件:
package com.commonsware.android.camcon;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import java.io.File;
public class CameraContentDemoActivity extends Activity
private static final int CONTENT_REQUEST=1337;
private File output=null;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File dir=
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
output=new File(dir, "CameraContentDemo.jpeg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));
startActivityForResult(i, CONTENT_REQUEST);
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data)
if (requestCode == CONTENT_REQUEST)
if (resultCode == RESULT_OK)
Intent i=new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(output), "image/jpeg");
startActivity(i);
finish();
(来自this sample project)
【讨论】:
它可以让我拍照,但由于某种原因它仍然没有保存在 Gallery 文件夹中 @CraigGallagher:没有“画廊文件夹”。如果您的意思是设备上的某些图库类型的应用程序没有显示图像,那是因为相机应用程序没有要求MediaStore
为文件编制索引。使用MediaScannerConnection
及其scanFile()
方法自己做这件事,作为onActivityResult()
的一部分。以上是关于如何将图像保存到图库 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
NativeScript - 如何将图像保存/添加到手机的默认图库应用程序中
如何从图库(Android Studio)中选择并保存图像?