安卓如何将拍摄的照片保存到手机相册?

5

我有两个活动。在其中一个活动中,我有一个 ImageView 和一个相机按钮。当我按下相机按钮时,它会进入另一个活动,那里有两个按钮:拍摄和选择按钮。当我按下拍摄按钮时,它会捕获一张图片。但问题是如何将这个捕获的图像保存到相册中。在按下选择按钮后,捕获的图像应该显示在第一个活动的 ImageView 上。我该怎么做。

3个回答

4
请参考此链接,将图片保存到相册中。请参考此链接,以编程方式显示相册中的图片。

2
该博客已迁移到http://blog.kupriyanov.com/2010/02/solved-android-save-image-to-media.html。 - cogg
无法想象这段代码去哪里了?请帮忙。 - McLan

2
这是我完成它的方式。图像以分钟+秒+.jpg的格式保存在SD卡上:
final static private int NEW_PICTURE = 1;
private String mCameraFileName;


ImageButton Edit = (ImageButton) findViewById(R.id.internetbrowser4);

    Edit.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent();
            // Picture from camera
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);

            // This is not the right way to do this, but for some reason, having
            // it store it in
            // MediaStore.Images.Media.EXTERNAL_CONTENT_URI isn't working right.

            Date date = new Date();
            DateFormat df = new SimpleDateFormat("-mm-ss");

            String newPicFile = "Bild"+ df.format(date) + ".jpg";
            String outPath = "/sdcard/" + newPicFile;
            File outFile = new File(outPath);

            mCameraFileName = outFile.toString();
            Uri outuri = Uri.fromFile(outFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, outuri);


                startActivityForResult(intent, NEW_PICTURE);

        }
    });

  public void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        if (requestCode == NEW_PICTURE) 
        {
            // return from file upload
            if (resultCode == Activity.RESULT_OK) 
            {
                Uri uri = null;
                if (data != null) 
                {
                    uri = data.getData();
                }
                if (uri == null && mCameraFileName != null) 
                {
                    uri = Uri.fromFile(new File(mCameraFileName));
                }
                File file = new File(mCameraFileName);
                if (!file.exists()) {
                    file.mkdir();
                }
            }
        }} 
}

1

试试这个...

String path = Environment.getExternalStorageDirectory() + "/CameraImages/example.jpg";
                            File file = new File(path);
                            Uri outputFileUri = Uri.fromFile( file );
                            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
                            intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

                            startActivityForResult( intent, CAPTURE_IMAGE );

你的图像将被保存在该位置:“sdcard/CameraImages/example.jpg”


1
抱歉,它在Nexus 7(Cyanogenmod)上无法工作! - McLan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接