Drawable from Web

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Drawable from Web im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Coeptis

Coeptis

Neues Mitglied
Hallo ich versuche ein ImageView mit einem Bild aus dem Netz zu füllen.
Leider klappt es noch nicht so recht.

Folgendes versuche ich gerade:
Code:
public static Drawable getDrawableFromWebOperation(String url) 
    {
      try 
      {
        InputStream is = (InputStream) new URL(url).openConnection().getInputStream() ;
        Drawable d = Drawable.createFromStream(is, url);
        return d;
      } 
      catch (Exception e) 
      {
        Log.e("###TEST###", "Drawable from WEB Fehler: "+e.getMessage());
        return null;
      }
    }
Und hier die Stelle des Aufrufes:

Code:
ImageView iView = new ImageView(this);
iView.setBackgroundDrawable(getDrawableFromWebOperation(strSourceBild.get(i)));
In strSourceBild.get(i) steckt die URL als String! Also daher kommt es nicht und das Leerzeichen bei Operation kommt durchs Forum.:)confused2:)

Leider bekomme ich immer: java.lang.NullPointerException:cursing:

Vielleicht habt ihr ja einen Rat. Irgendwie kann ich es mir nicht erklären.:confused2:
Danke schonmal für Eure Mühen. :thumbup:
 
S

swordi

Lexikon
permission internet gesetzt ?

wo genau hast den nullpointer - debugge mal, was genau null ist
 
Coeptis

Coeptis

Neues Mitglied
Code:
<uses-permission android:name="android.permission.INTERNET" />
JUPP!

Code:
06-20 09:09:53.787: E/AndroidRuntime(593): FATAL EXCEPTION: main
06-20 09:09:53.787: E/AndroidRuntime(593): java.lang.RuntimeException: Unable to start activity ComponentInfo{....}: java.lang.NullPointerException
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.ActivityThread.access$1500(ActivityThread.java:122)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.os.Looper.loop(Looper.java:132)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.ActivityThread.main(ActivityThread.java:4025)
06-20 09:09:53.787: E/AndroidRuntime(593):     at java.lang.reflect.Method.invokeNative(Native Method)
06-20 09:09:53.787: E/AndroidRuntime(593):     at java.lang.reflect.Method.invoke(Method.java:491)
06-20 09:09:53.787: E/AndroidRuntime(593):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-20 09:09:53.787: E/AndroidRuntime(593):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-20 09:09:53.787: E/AndroidRuntime(593):     at dalvik.system.NativeStart.main(Native Method)
06-20 09:09:53.787: E/AndroidRuntime(593): Caused by: java.lang.NullPointerException
06-20 09:09:53.787: E/AndroidRuntime(593):     at ......onCreate(......java:110)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
06-20 09:09:53.787: E/AndroidRuntime(593):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712)
06-20 09:09:53.787: E/AndroidRuntime(593):     ... 11 more
Und wie gesagt
Code:
strSourceBild.get(i)
ist voll!
 
Zuletzt bearbeitet:
T

Tom299

Stammgast
btw. ich würde .setImageDrawable(drawable) benutzen, es sei denn, du willst wirklich den hintergrund setzen.

ansonsten vielleicht die resource in einem thread laden und dann erst setzen.
 
S

swordi

Lexikon
und was genau ist zeile 110 ?
 
Coeptis

Coeptis

Neues Mitglied
Upps ja klar habe es gleich mal geändert auf
Code:
setImageDrawable
Der Fehler bleibt! Das mit dem Thread bitte genauer erklären! Habe ich nie gemacht.

Zeile 110 ist auskommentiert
Code:
//            this.runOnUiThread(new Runnable()
 
T

Tom299

Stammgast
Das Laden des Bildes im Netz blockiert deine UI, wenn du das nicht im Thread machst. Was ist, wenn du gerade keine Verbindung bekommst und das Bild nicht laden kannst? Dann hängt deine App und nach 5s kommt der Beenden-Screen.

Schau dir mal AsyncTask an, zum Resourcen laden ist der sicherlich sehr gut geeignet.
 
Coeptis

Coeptis

Neues Mitglied
Danke erstmal. Werde mir das gleich mal ansehen.
 
Ähnliche Themen - Drawable from Web Antworten Datum
0