Muszę zapisać zdjęcia pobrane z pamięci Firebase na telefon, aby nie pobierać ich ponownie za każdym razem, gdy program jest uruchamiany.
url = "https://firebasestorage.googleapis.com/v0/b/****-*************.jpg"
Picasso.get().load(url).into(imageView);
Nie mam problemu z przeglądaniem obrazu, ale po ponownym uruchomieniu programu nie chcę, aby obraz był ponownie ładowany. Jak mogę to osiągnąć?
3 odpowiedzi
Najpierw będziesz chciał przekonwertować ImageView, w którym masz obraz, na bitmapę
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
Teraz możesz zapisać bitmapę
try (FileOutputStream out = new FileOutputStream(filename)) { //where filename is your path location file
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (IOException e) {
e.printStackTrace();
}
Lepiej używaj Glide 4 zamiast Picassa. Strategia buforowania obrazów Glide jest przydatna do tego rodzaju celów. Więcej szczegółów : https://bumptech.github.io/glide/doc/caching.html
Myślę, że musisz wykonać takie kroki, aby uzyskać dobre obrazy i przedstawić je w widoku obrazu.
1) Pobierz z firebase i zapisz w katalogu na Androidzie. 2) Wyświetl obraz z katalogu Androida.
Możesz też pobrać obraz, używając linku z Firebase. Nie jest dobrym pomysłem pobieranie obrazu z widoku obrazu.
Podobne pytania
Powiązane pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].