2012-09-18 3 views
1

Я хочу показать дату снимка, когда он был сделан на моем ImageView. Предположим, что у меня есть фотографии на моем girdview. как только я его щелкнул, он перейдет к другой активности и отобразит полный размер изображения. Теперь в этой операции мне нужно отобразить дату, когда она была сделана. Есть идеи?Укажите дату снимка, когда он был сделан?

+0

Любое изображение, хранящееся в устройстве MediaStore, содержит поле 'DATE_TAKEN', которое вы можете включить в свой запрос, а затем отображение на экране. https://developer.android.com/reference/android/provider/MediaStore.Images.Media.html Чтобы ответить на вопрос «Как», нам понадобится гораздо больше информации о том, как вы обращаетесь к изображениям в первую очередь , – Devunwired

+0

ok Я получаю изображение как мой предыдущий вопрос. Таким образом, (http://stackoverflow.com/questions/12474667/how-can-i-show-the-full-size-of-image). По ExternalStorageDirectoryPath. – Stella

+0

Должно быть много учебников, показывающих только это, все в одном ответе довольно много. –

ответ

7

Существует два возможных способа сделать это на Android. Первым является файл измененной дата, которая может быть достигнута следующим образом:

String pathToFile = "Your file path"; 
File file = new File(pathToFile); 
if(file.exists()) { 
    long date = file.lastModified(); 
    /* Do your modified date stuff here */ 
} 

Другим путем была бы проверить данные EXIF ​​на изображении, чтобы получить дату, когда был сделан снимок, если эта информация доступна:

ExifInterface intf = null; 
try { 
    intf = new ExifInterface(path); 
} catch(IOException e) { 
    e.printStackTrace(); 
} 

if(intf == null) { 
    /* File doesn't exist or isn't an image */ 
} 

String dateString = intf.getAttribute(ExifInterface.TAG_DATETIME); 
/* Do your date/time stuff here */ 

Просто примечание. Данные Exif для изображения могут не содержать даты. Большинство телефонных камер и коммерческих камер добавят дату и время Exif, но изображения, созданные на компьютере, с меньшей вероятностью имеют данные Exif. Кроме того, дата и время Exif не отформатированы очень хорошо. Пример Exif date/time string: 2012:06:02 14:33:46 (взято из изображения, которое я взял с моим Nexus S)

+0

ОК спасибо. как я могу добавить один из них здесь (http://stackoverflow.com/questions/12480724/how-to-get-the-date-taken-and-display-it)? – Stella

+1

Вы не можете отобразить текст непосредственно на ImageView. Вам нужно будет сделать более сложный макет (возможно, RelativeLayout с ImageView и TextView в нем) и заполнить отдельные элементы. – MCeley

+0

Получил это .. спасибо – Stella

0

Вы можете использовать RelativeLayout объединить оба ImageView и TextView с датой, проверьте this answer.

+0

Благодарю вас за ответ, но у меня еще нет даты съемки. – Stella

+0

Хм, думаю, вам стоит открыть еще один вопрос. В этом вопросе речь идет о «отображении», и вы не упомянули, что не могли получить дату. – dmon

+0

Хорошо, я создал вопрос относительно этого. – Stella

2

Если вы просто читаете каждое изображение с внешнего хранилища как File, то у File есть метод lastModified(), чтобы получить измененную дату файла. Хотя это не обязательно дата создания файла, для неизменяемого файла, такого как изображение, оно, скорее всего, есть.

for (File file : files) { 
    //This is the date the file was modified/created 
    long date = file.lastModified(); 
    //You can even convert it to a Date if you want 
    Date fileData = new Date(date); 
} 

Если ваше приложение является одним создания изображений на внешнем накопителе, и вы абсолютно необходимо первоначальный дату создания только файла, вы имели лучший магазин, информация себе в локальной базе данных, когда создается изображение. Это то, что делает MediaStore для рамки.

+0

ОК спасибо за ответ, у вас есть пример? прочитайте это http://stackoverflow.com/questions/12480724/how-to-get-the-date-taken-and-display-it. – Stella

+0

Просто вызовите 'file.lastModified()', чтобы получить значение для каждого файла, который вам нужно прочитать/отобразить. – Devunwired

+0

Я не могу понять. – Stella

Смежные вопросы