Ładowanie ImageView z bazy danych

0

Piszę w Android Studio. Chcę załadować obraz z bazy danych (String), docelowo zdjęcie jest przechowywane lokalnie.

imageView.setImageResource(R.drawable.jakiesID);

Dla testów tak sobie ładowałem obraz. Nie wiem jak załadować taki obraz z mojego PC... Znalazłem takie rozwiązanie:

imageView.setImageBitmap(BitmapFactory.decodeFile("src/main/res/drawable/mcdonald.png"));

Otrzymuję następujący błąd:

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: ../src/main/res/drawable/mcdonald.png: open failed: ENOENT (No such file or directory)
Prawdopodobnie jest coś nie tak z lokalizacją pliku.
Proszę o pomoc :)

0

mój drogi, próbujesz zrobić coś zupełnie od czapy (coś jakbyś pytał "próbuję wbić gwoździa bananem i nie da się"), nie do końca nawet rozumiem co...

co próbujesz osiągnąć?

0

@marian pazdzioch: szukam rozwiązania by wyświetlać image, dla konkretnej nazwy pobranej z bazy (SQL). Obrazki będą zapisane w folderze drawable.

iconRestaurant.setImageResource(logo);

Ta metoda przyjmuje tylko int i nie wiem jak zrobić, by wyświetlać to po nazwie (string).

0

Pomijając czy cały sposób jest ok czy nie - możesz tak zrobić:

int drawableResourceId = this.getResources().getIdentifier("twojaNazwaZBazy", "drawable", this.getPackageName());
iconRestaurant.setImageResource(drawableResourceId);
0

@dbCooper: Jaki sposób polecasz zastosować?

0

Twoj sposob zadziała i nie jest taki straszny ale im więcej obrazków tym więcej MB bedzie wazyć twoja appka. Jeżeli rozdzielczosci zdjec bedą duże to ładowanie nie będzie optymalne.

Jak miałbym cos robić bardziej na serio to pewnie zastanowilbym sie nad wrzuceniem zdjec na AWS S3 i użycie sprawdzonej libki do obrazków (np Glide) ktora ogarnie za ciebie odpowiednie ladowanie do ImageView, cachowanie i optymalizacje rozmiarów.

0

@dbCooper: Obrazków tam dużo nie będzie, bo jest to projekt inżynierski. Apka potem pewnie będzie zapomniana jak większość studenckich projektów :/

0

@dbCooper: dzięki :) jakby ktoś kiedyś potrzebował

Glide.with(convertView)
                .load("https://interactive-examples.mdn.mozilla.net/media/cc0-images/grapefruit-slice-332-332.jpg")
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(iconRestaurant);

1 użytkowników online, w tym zalogowanych: 0, gości: 1