1. Coeptis, 20.06.2012 #1
    Coeptis

    Coeptis Threadstarter Neuer Benutzer

    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

    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

    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

    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

    und was genau ist zeile 110 ?
     
  6. Coeptis, 20.06.2012 #6
    Coeptis

    Coeptis Threadstarter Neuer Benutzer

    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

    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

    Danke erstmal. Werde mir das gleich mal ansehen.