1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Drawable from Web

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Coeptis, 20.06.2012.

  1. Coeptis, 20.06.2012 #1
    Coeptis

    Coeptis Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    15.06.2012
    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:
     
  2. swordi, 20.06.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    permission internet gesetzt ?

    wo genau hast den nullpointer - debugge mal, was genau null ist
     
  3. Coeptis, 20.06.2012 #3
    Coeptis

    Coeptis Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    15.06.2012
    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: 20.06.2012
  4. Tom299, 20.06.2012 #4
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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.
     
  5. swordi, 20.06.2012 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    und was genau ist zeile 110 ?
     
  6. Coeptis, 20.06.2012 #6
    Coeptis

    Coeptis Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    15.06.2012
    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()
     
  7. Tom299, 20.06.2012 #7
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    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 bedankt sich.
  8. Coeptis, 20.06.2012 #8
    Coeptis

    Coeptis Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    15.06.2012
    Danke erstmal. Werde mir das gleich mal ansehen.
     

Diese Seite empfehlen