Wenn es kein Inhalts-URI ist, kann this link helfen. Es scheint anzuzeigen, dass imgView.setImageURI()
nicht für reguläre URIs verwendet werden sollte. Kopieren in dem entsprechenden Bit:
Ja, ImageView.setImageURI(ContentURI uri)
funktioniert, aber es ist für den Inhalt URIs insbesondere auf die Android-Plattform, nicht URIs Internet-Ressourcen angeben. Die Konvention wird auf binäre Objekte (z. B. Bilder) angewendet, die nicht direkt über die Cursor-Methoden eines ContentProviders verfügbar gemacht werden können. Stattdessen wird eine String-Referenz verwendet, um auf einen eindeutigen Inhalts-URI zu verweisen, der durch eine separate Abfrage für den Inhaltsanbieter aufgelöst werden kann. Die setImageURI-Methode ist einfach ein Wrapper, um diese Schritte für Sie auszuführen. Ich habe diese Verwendung von setImageView
getestet und es funktioniert wie erwartet. Für Ihre Verwendung würde ich jedoch BitmapFactory.decodeStream()
und URL.openStream()
betrachten.
Auch diese Antwort in sich geschlossene zu machen, aus einem anderen Beitrag der Beispielcode in diesem Link, das zeigt, wie es geht:
private Bitmap getImageBitmap(String url) {
Bitmap bm = null;
try {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (IOException e) {
Log.e(TAG, "Error getting bitmap", e);
}
return bm;
}
ich diesen Code nicht getestet haben, bin ich einfach paranoid und gerne sicherstellen, dass SO Antworten nützlich sind, auch wenn jede andere Seite im Netz verschwindet :-)