2014-02-13 53 views
5

在我的Android應用程序中,我想在圖庫中保存一個位圖,實際上它可以正常工作,下面的代碼可以正常工作。唯一的錯誤是,當我在圖庫中打開圖像時,細節中創建的時間是錯誤的。接下來,圖片在畫廊中的排列順序不正確。Android:將位圖保存到圖庫==>創建時間錯誤

有人有想法嗎? 非常感謝幫助

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
Bitmap combination = //get my bitmap! 
//save in gallery 
MediaStore.Images.Media.insertImage(exploreActivity.getContentResolver(),combination,"test_"+ timeStamp + ".jpg",timeStamp.toString()); 

這裏的細節PRINTSCREEN:

a busy cat http://i61.tinypic.com/2ypnggl.png

回答

10

你需要插入圖像時定義DATE_TAKEN

public static Uri addImageToGallery(Context context, String filepath, String title, String description) {  
    ContentValues values = new ContentValues(); 
    values.put(Media.TITLE, title); 
    values.put(Media.DESCRIPTION, description); 
    values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis()); 
    values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
    values.put(MediaStore.MediaColumns.DATA, filepath); 

    return context.getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); 
} 

如果您需要任何其他指針,我想看看MediaStore.Images.Media.insertImage

+0

感謝您的幫助。如果我理解你是正確的,你的解決方案創建一個新的文件夾,並不像正常的相機應用程序那樣將文件保存在文件夾中?我希望它們位於相機所創建的相同文件夾中 – lukas

+1

只需從ContentValues中移除MediaColumns.DATA條目,因爲它指定了圖像的位置。接下來將圖像保存到由getContentResolver()。insert()返回的位置。如果你看看我提供的第二個鏈接(insertImage),它提供了一個如何完成的例子。 – jimmithy

+0

非常感謝你!現在它按我的意願工作。感謝您的幫助 – lukas

0

你有沒有進口:這可以通過改變將圖像添加到庫的方式,做一些類似下面的做正確的類java.util.Date?也許自動導入採取了從sql,常見的錯誤。

+0

是的,那是正確的。但感謝您的幫助 – lukas