2013-08-06 14 views
6

Robię menedżera plików, w którym elementy obrazu mają małą miniaturkę.Miniatura nie jest odświeżana natychmiast

Otrzymuję miniaturkę za pomocą MediaStore. Wszystko dziala. Ale kiedy zmieniam nazwę lub przenoszę plik, miniatura się nie wyświetla.

znalazłem kawałek kodu, aby odświeżyć MediaStore:

getActivity().sendBroadcast(
    new Intent(Intent.ACTION_MEDIA_MOUNTED, 
      Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 

To działało, ale muszę poczekać 4 lub 5 sekund i odświeżyć, a następnie aktualizacje miniaturek.

Jak uzyskać miniaturkę zdjęcia natychmiast po zmianie nazwy lub przenoszeniu?

+0

podaj w wątku ......... – Exceptional

Odpowiedz

0

Czy próbowałeś skanować bezpośrednio w katalogu, który zmieniasz? Więc zamiast

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 

coś podobnego

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/path/to/your/folder"))); 

Alternatywą byłoby ręcznie użyć ThumbnailUtils.

2

Co się stanie, jeśli użyjesz ACTION_MEDIA_SCANNER_SCAN_FILE zamiast ACTION_MEDIA_MOUNTED (tj. Wyzwolisz odświeżanie dla pojedynczego pliku zamiast dla pełnej hierarchii katalogów)?

Konieczne będzie zastąpienie identyfikatora URI katalogu identyfikatorem URI pliku, uzyskanym na przykład przy użyciu Uri.fromFile().

Po przeniesieniu lub zmianie nazwy pliku należy odświeżyć stary i nowy identyfikator URI.

1

Zalecanym sposobem aktualizacji określonego obrazu w systemie Android jest użycie intencji ACTION_MEDIA_SCANNER_SCAN_FILE. Aby uzyskać płynniejszą obsługę, można uzyskać dostęp do

w witrynie Android Developer Site pod adresem Basic Photo Handling Training.

Jeśli chcesz natychmiast wyświetlić nową miniaturę niektórych brakujących plików, możesz to zrobić samodzielnie. Najpierw sprawdź MediaStore, jak poprzednio, a jeśli zwrócona miniatura ma wartość NULL, wygeneruj własną za pomocą ThumbnailUtils lub BitmapFactory.

I, W celu obsługi bitmapy i wyświetlania jej, w Kursie szkoleniowym systemu Android jest cicho straightforward sample.

Powiązane problemy