Ich habe die URL eines Bildes. Was ich tun muss, ist den Standard-Bildbetrachter für Bilder mit einer Absicht zu starten.Launch Intent Viewer zum Anzeigen von Bild von URL
Ich versuchte es mit Hilfe Start:
Uri uri = Uri.parse("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png");
Intent it = new Intent(Intent.ACTION_VIEW);
it.setDataAndType(uri, "image/*")
startActivity(it);
Aber es funktioniert nicht. Wenn ich den Datentyp nicht angeben, startet der Intent den Browser, da die Daten eine URL sind. Es funktioniert grundsätzlich (da Sie das Bild im Browser sehen können), aber was ich möchte, ist, dass die Galerie das Bild für mich anzeigt.
Ich kann auch das Bild in eine Bitmap herunterladen, aber ich würde immer noch nicht wissen, wie die Bitmap mit der Galerie angezeigt wird (wenn das überhaupt möglich ist). Irgendwelche Ideen?
EDIT: Ich habe versucht, die Bitmap in den Cache speichern und starten Sie den Viewer für diese Datei, aber es funktioniert nicht. Kannst du Fehler in meinem Code erkennen? (Die Utilities-Klasse ist eine Klasse i schrieb Verfahren einfach die Bitmap erzeugt Es funktioniert, das ist nicht das Problem..)
File temp = File.createTempFile("tempImage", ".jpg", getContext().getCacheDir());
Bitmap bmp = Utilities.loadBitmap(largeUrl.toString());
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(temp));
bmp.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.close();
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(temp), "image/jpg");
((Activity) getContext()).startActivity(intent);
EDIT 2: Ich beschloss, dass ich nach all so die heruntergeladenen Bilder benötigen i beschlossen, sie zuerst auf der SD-Karte zu speichern. Das hat andere Probleme verursacht. Ich fragte eine new question dafür, da es ein anderes Problem ist.
Ich mag wäre in der Lage sein, es zu tun, ohne Material sparend, aber ich versuchte, es und es funktioniert nicht. Kannst du mir bitte meine bearbeitete Frage ansehen und Fehler erkennen? –
Zwei Kommentare: (1) Sie legen SetDataAndType für die temporäre Datei fest, bevor sie ausgegeben wurde. Warum nicht die gespeicherte Datei abrufen und diese dann zur Absicht hinzufügen? (2) Wenn Sie sagen "es funktioniert nicht", was ist das Ergebnis oder die Ausnahme? – HXCaine
was meinst du bevor es ausgegeben wurde? Ich komprimiere die Bitmap, schließe den Ausgabestrom und erstelle dann die Absicht ... –