【问题标题】:How to save image in external folder without overriding the last image taken如何在不覆盖最后拍摄的图像的情况下将图像保存在外部文件夹中
【发布时间】:2014-11-23 09:41:52
【问题描述】:

我有一个应用程序,我想在其中拍照并保存到手机/设备上的文件夹中。我遇到的问题是,当我拍摄照片时,它会将其保存到有效的目录中,但是当拍摄另一张照片时,它会替换该文件夹中的前一张照片。我的问题是如何在不替换上一张照片的情况下保存下一张照片?

这是我的相机意图代码:

@Override
public void onMapLongClick(Intent intent) {
Intent getCameraImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File cameraFolder;
if  (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
    cameraFolder = new  File(android.os.Environment.getExternalStorageDirectory(),"HikingImages/");
else
    cameraFolder= context.getCacheDir();
if(!cameraFolder.exists())
    cameraFolder.mkdirs();
String imageFileName = imagename;
photo = new File(cameraFolder, "HikingImages/" + imageFileName);
getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
Uri.fromFile(photo);
startActivityForResult(getCameraImage, TAKE_PICTURE);

有人可以帮忙吗?

【问题讨论】:

    标签: android-intent android-camera


    【解决方案1】:

    尝试在文件名中添加时间戳或递​​增数字

    http://developer.android.com/training/camera/photobasics.html#TaskPath

    代替:

     String imageFileName = imagename;
     photo = new File(cameraFolder, "HikingImages/" + imageFileName);
    

    这样做:

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = imagename + "_" + timeStamp;
    photo = new File(cameraFolder, "HikingImages/" + imageFileName);
    

    【讨论】:

    • 谢谢,但如果你能告诉我如何做到这一点,可以吗?或者我需要把它放在哪里?
    • 好的,对不起,我加了String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "JPEG_" + timeStamp + "_";
    猜你喜欢
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多