Android Drawable Bilder von URL

Ich verwende derzeit das folgende Stück Code, um in Bildern zu laden, wie zerlegbare Objekte eine URL bilden.

Drawable drawable_from_url(String url, String src_name) throws java.net.MalformedURLException, java.io.IOException { return Drawable.createFromStream(((java.io.InputStream)new java.net.URL(url).getContent()), src_name); } 

Dieser Code funktioniert genau wie gewünscht, aber es scheint Kompatibilitätsprobleme zu sein. In Version 1.5 wirft es eine FileNotFoundException wenn ich ihm eine URL gebe. In 2.2, angesichts der exakt gleichen URL, funktioniert es gut. Die folgende URL ist eine Stichprobeneingabe, die ich diese Funktion gebe.

  • Wie man runOnUiThread verwendet, ohne "kann nicht einen statischen Verweis auf die nicht statische Methode" Compiler-Fehler
  • GLSurfaceView innerhalb Fragment nicht Rendering beim Neustart
  • Wie für Mock Location in Android Marshmallow zu überprüfen?
  • Funky android Activity Verhalten, wenn Bildschirm ausschaltet?
  • Öffnen Sie Instagram User Profile
  • Gibt es einen Weg für eine Aktivität zu wissen, welches Fragment gerade geschaffen wurde?
  •  http://bks6.books.google.com/books?id=aH7BPTrwNXUC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U2aQRnAX2o2ny2xFC1GmVn22almpg 

    Wie lade ich die Bilder in einer Weise ein, die von einer URL aus kompatibel ist?

  • Rendering in cocos2d-x mit Werten aus einer mathematischen Funktion
  • So vermeiden Sie * / * Mime-Typen in Absichtsfilter
  • LeftNavBar schafft schwarzen Balken an der Spitze der Aktivität
  • GetChildFragmentManager () auf programmgesteuert (dynamisch) hinzugefügt Fragmente?
  • So erstellen Sie einen einfachen Teiler in der neuen NavigationView?
  • Konzentriere dich auf jeden Gegenstand der Listenansicht in android
  • 5 Solutions collect form web for “Android Drawable Bilder von URL”

    Bitmap ist kein Zeichen. Wenn Sie wirklich ein Drawable brauchen, tun Sie dies:

     public static Drawable drawableFromUrl(String url) throws IOException { Bitmap x; HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.connect(); InputStream input = connection.getInputStream(); x = BitmapFactory.decodeStream(input); return new BitmapDrawable(x); } 

    (Ich habe den Tipp gefunden in https://stackoverflow.com/a/2416360/450148 )

    Hat es selbst gelöst. Ich habe es als Bitmap mit folgendem Code geladen.

     Bitmap drawable_from_url(String url) throws java.net.MalformedURLException, java.io.IOException { HttpURLConnection connection = (HttpURLConnection)new URL(url) .openConnection(); connection.setRequestProperty("User-agent","Mozilla/4.0"); connection.connect(); InputStream input = connection.getInputStream(); return BitmapFactory.decodeStream(input); } 

    Es war auch wichtig, in den User-Agenten hinzuzufügen, da googlebooks den Zugriff verweigert, wenn es nicht vorhanden ist

    Ich bin mir nicht sicher, aber ich denke, dass Drawable.createFromStream () ist eher für die Verwendung mit lokalen Dateien anstatt heruntergeladen InputStreams. Versuchen Sie es mit BitmapFactory.decodeStream() , dann wickeln Sie die Rückgabe Bitmap in einem BitmapDrawable .

    Der folgende Code funktioniert für mich:

     Matrix Mat = new Matrix(); Bitmap Source = BitmapFactory.decodeFile("ItemImagePath"); Bitmap Destination = Bitmap.createScaledBitmap( Source, 320, 320, true ); Source = Bitmap.createBitmap( Destination, 0, 0, Destination.getWidth(), Destination.getHeight(),Mat, true ); ItemImageView.setImageBitmap(Source); 

    Sie können com.androidquery.AndroidQuery verwenden, um dies ganz einfach zu tun. Beispielsweise:

     AQuery aq = new AQuery(this); aq.id(view).image("http://yourserver/yourimage.png", true, true, 300, new BitmapAjaxCallback() { @Override public void callback(String url, ImageView imageView, Bitmap bitmap, AjaxStatus status) { Drawable drawable = new BitmapDrawable(getResources(), bm); } }); 

    Wenn Sie den BitmapAjaxCallback verwenden, erhalten Sie Zugriff auf die BitMap, die Sie als BitmapDrawable einpacken können.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.