2016-11-23 14 views
1

我想在android中使用contentResolver編寫一個查詢,以僅從圖庫中獲取特定日期的圖像?如何在android中使用contentResolver編寫查詢以僅從圖庫中獲取特定日期的圖像?

final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }; 
Cursor imagecursor = getApplicationContext().getContentResolver().query(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, 
       null, null); 

這給了我所有的圖像,我希望特定的日期和具體的time.Please的圖像建議。

回答

0

試試這個

String[] columns = {MediaStore.Images.Media._ID, MediaStore.Images.ImageColumns.DATE_TAKEN}; 

String orderBy = MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC"; 

更多How to make sort gallery thumbnails image by date

+0

我不想命令他們,我想只有 –

+0

這意味着不註明日期爲您輸入特定日期的圖像,否則你要像創建日期 – Raju

+0

圖像創建日期,我不會放棄任何輸入 –

1

不能直接查詢圖像從日期本身MediaStore才明白時間戳。所以如果你想要一個特定日期的圖像,你必須首先將該日期轉換爲如下所示的時間戳。

//converting date to timestamp 
public static long getTimeStamp(String calculatedDate) { 
    DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); 
    Date date = null; 

    try { 
     date = formatter.parse(calculatedDate); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

    long output = 0; 
    if (date != null) { 
     output = date.getTime()/1000L; 
    } 
    String str = Long.toString(output); 
    return Long.parseLong(str) * 1000; 
} 

你現在需要的時間戳來查詢這個喜歡following.here你需要傳遞兩個時間戳相匹配的圖像比下一個日期大於給定日期和小於。所以你需要精確的輸出。

cursor = activity.getContentResolver().query(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.MediaColumns.DATA}, MediaStore.Images.Media.DATE_TAKEN + ">=? and " + MediaStore.Images.Media.DATE_TAKEN + "<=?", new String[]{"" + givendate_timestamp, "" + nextdate_timestamp}, MediaStore.Images.Media.DATE_TAKEN + " DESC"); 
+0

cursor = activity.getContentResolver()。query(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,MediaStore.MediaColumns.DATA,MediaStore.Images.Media.DATE_TAKEN +「=?」,new String [] {「 「+ givendate_timestamp},MediaStore.Images.Media.DATE_TAKEN +」DESC「);通過確切的日期 –

+0

感謝您的幫助。是否有一種方法,我可以得到特定的形象;只有在特定日期的時間段? –

+0

@stackLearner請檢查更新的查詢..它將第二個參數作爲字符串數組。是的,我的朋友這對我很好。時間戳轉換器是這樣工作的。假設我們採用日期22-11-2016,所以它給出了時間戳22-11-2016和時間00:00:00,這表示日期的開始時間戳。並且我們還輸入第二天的時間戳,因此它將是23-11-2016和00:00:00的時間。所以在我們的查詢> = givendate_timestamp和<= nextdate_timestamp。希望你明白了。 – Chirayu

相關問題