2016-06-23 11 views
0

Ich versuche, eine Bildansicht tippen, und öffnen Sie das Bild innerhalb des Standard-Fotobetrachter:Android Ansicht Bild Absicht nicht Bild angezeigt

void handleOpenImage(){ 
    try { 
     File temp = File.createTempFile("myImage", ".png"); 
     BitmapDrawable bitmapDrawable = (BitmapDrawable) attachedImageView.getDrawable(); 
     Bitmap bitmap = bitmapDrawable.getBitmap(); 
     FileOutputStream stream = new FileOutputStream(temp); 
     boolean success = bitmap.compress(Bitmap.CompressFormat.PNG, 0, stream); 
     if(!success){ 
      throw new Exception(); 
     } 
     Intent intent = new Intent(); 
     intent.setAction(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.fromFile(temp), "image/*"); 
     startActivity(intent); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Allerdings, wenn ich diese Funktion aufrufen, eine Galerie Aktivität beginnt, aber zeigt mein Bild nicht an. Die Image-Datei wurde erfolgreich im Temp-Pfad erstellt. Warum funktioniert die Absicht nicht?

+0

statt startActivity (Vorsatz) diese benutzen und überprüfen Sie es i Öffnung in anderen app, wenn startActivity (Intent.createChooser (Absicht, "Bild auswählen")); – Vickyexpert

+0

@Vickyexpert oh Entschuldigung, ich hab nur verstanden, was du gemeint hast. ignoriere meinen vorherigen Kommentar. werde versuchen. –

+0

@Vickyexpert versuchte es, ich bekomme das gleiche: Ich wähle Gallery, es öffnet sich, aber das Bild wird nicht angezeigt. Ich bleibe mit einer leeren Galerie Aktivität –

Antwort

1

Wie ich in den Kommentaren gefragt habe, war der absolute Pfad der Datei temp/data/data/MY_APPS_IDENTIFIER/cache/ulouder-1004534880.png. Dieser Pfad befindet sich im privaten Bereich, auf den jede App aus Sicherheitsgründen von anderen Apps zugegriffen werden kann.

Durch Speichern der Datei temp an einem anderen Speicherort kann die Galerie-App darauf zugreifen und das Bild korrekt anzeigen.