Android Programmierung: Bild, das auf dem Handy liegt in einer ImageView anzeigen, wie?

4 Antworten

Hast du die Berechtigung gesetzt, dass die App auf das System zugreifen kann?


Mornamath 
Beitragsersteller
 13.03.2016, 20:47

welche wäre das?  ich habe nichts gesetzt, aber .txt Dateien kann ich auch erfolgreich abspeichern und auch auslesen und anzeigen lassen

0
telematiker86  13.03.2016, 20:51
@Mornamath

Du kannst nur Zugriffe innerhalb des Ordners für die App machen. Alles was außerhalb liegt, kannst du nicht nutzen. Ausnahme ist, du setzt die Berechtigung für Dateisystem-Zugriff.

0
Mornamath 
Beitragsersteller
 13.03.2016, 20:54
@telematiker86

das Bild liegt ja innerhalb des Ordners.  An der selben Stelle, an der auch die .txt Dateien liegen, die ich auch auslesen kann.

0

bild1.setImageResource(R.drawable.bild2);

Hallo!

Ich arbeite auch mit Bilder/Images mit Android --

versuche mal das Bild in eine xml-Datei zu integrieren, ob es dann kommt?

Ausserdem würde ich mich an die Ordnerstruktur halten, also das Bild (png oder jpg) in den res/drawable-Ordner oder in die neuen res/mipmap-Ordner zu legen.

Gut funktioniert bei mir auch der assets-Ordner, da kannst du

getActivity().getAssets() nehmen, um das richtige Verzeichnis zu bekommen.

In der XML-Datei z.B.

android:scr="@drawable/postman"

Gruß

P.S --> in drawable und mipmap den Bildname ohne Extension angeben!


Mornamath 
Beitragsersteller
 14.03.2016, 17:45

hey, danke für die Antwort, nur scheinst auch du leider meine Situation nicht ganz zu verstehen (hab wahrscheinlich zu ungenau formuliert)

das Bild ist NICHT in der App enthalten und wird erst später von dieser aus dem Internet heruntergeladen und dann in dem nur für die App zugänglichen Ordner auf dem internen Speicher abgelegt.  Dass das Bild (bzw. die bilder) wirklich heruntergeladen werden, also in dem Ordner vorhanden sind, sehe ich daran, dass die App 10Mb Daten hat, die ich ja auch wieder löschen kann über die Android Einstellungen.  Alle Bilder, die die App herunter läd, haben zusammen 10Mb.

Ich hoffe, dass es jetzt etwas klarer ist und mir jemand helfen kann.

0

BitmapFactory.decodeStream() löst ziemlich sicher eine Exception aus - die allerdings aufgrund von catch(Exception e) nicht zu einem Abbruch führt.

Mit folgender zusätzlicher Zeile wird der Text der Exception in LogCat ausgegeben woran man dann erkennen kann wodurch das Problem entsteht.
Noch einfacher wird es natürlich wenn man einen Breakpoint auf diese Zeile setzt und die App im Debugger ausführt.

} catch (Exception e){
Log.e("Image", e.toString());
}

Eventuelle Ursachen:

der Code der die jpg-Datei geschrieben hat hat eine fehlerhafte Jpg-Datei generiert.

das geschriebene jpg-Bild hat eine so hohe Auflösung das es in dieser Auflösung (als Bitmap!) zuviel Speicher braucht.

Aber das ist Stochern im Nebel....daher am besten den Debugger benutzen