如何獲取相簿照片的拍攝時間
阿新 • • 發佈:2019-02-13
專案中有要實現類似微信的圖片選擇器的需求,而且還要將照片按照時間分期顯示。我是用RecyclerView實現的。要實現這樣的功能主要是得知道照片的拍攝時間,然後使用MultitypeAdapter將資料進行分類處理顯示。 怎樣獲取拍攝時間呢,主要有3種方法。當然方法有很多種,我在專案中試過的簡單好用的有如下3種。 **第一種:通過系統的ExifInterface獲取照片拍照時間。使用方法也很簡單**。 ExifInterface exifInterface = null; try { exifInterface = new ExifInterface(photoPath); } catch (Exception e) { e.printStackTrace(); } String dateTime = exifInterface.getAttribute(ExifInterface.TAG_DATETIME); 你看到可能不明白這是啥啊,不要捉急,將滑鼠移到getAttribute方法上,按住ctrl鍵,你可以看到原始碼。主要是通過各種stag來得到你想要的屬性,比如:ExifInterface.TAG_DATETIME(拍攝時間),ExifInterface.TAG_IMAGE_DESCRIPTION(照片的詳細資訊),ExifInterface.TAG_IMAGE_LENGTH(照片的長度),ExifInterface.TAG_IMAGE_WIDTH(照片的寬度)等資訊
第二種:使用JAVA手段,通過file的lastModified獲取。
Long fileTime = file.lastModified();
// Date date = new Date(fileTime);
// SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat(“MM月dd日”);
通過這種方法獲取到的是一個Long型別的時間(以ms計算),然後給它日期格式化一下,就可以得到拍攝時間。
第三種:根據多媒體資料庫查詢日期獲取
Uri imgUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
cursor = getActivity().getContentResolver().query(imgUri, null, null, null, MediaStore.Images.Media.DATE_TAKEN + ” DESC”);
int dateIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATE_TAKEN);
以上就是獲取照片拍攝時間的幾種方法,裡面有些基礎知識點並沒有細說,只是告訴大家可以通過這種方法獲取到,如果有不明白的可以在下面留言,我一定會詳細的告訴大家(PS:本姑娘也是第一次寫部落格,主要是總結工作中的一些經驗和坑,一方面是不要讓自己在同一個地方摔倒兩次,另一方面也希望能把這些東西分享給大家,可能文章中有些知識表達的不夠好,希望大家多多指正,不喜勿噴)