2012-03-30 3 views
1

ich die folgende Methode eine Datei in den Cache zu schreiben:android Schreiben Bilder zwischenzuspeichern nicht null Rückkehr auf dekodieren Datei

private Bitmap getBitmap(String url) { 
    String filename = String.valueOf(url.hashCode()); 
    File f = new File(cacheDir, filename); 

    // Is the bitmap in our cache? 
    Bitmap bitmap = BitmapFactory.decodeFile(f.getPath()); 
    if(bitmap != null) return bitmap; 

    // Nope, have to download it 
    try { 
     bitmap = BitmapFactory.decodeStream(new URL(url).openConnection().getInputStream()); 
     // save bitmap to cache for later 
     writeFile(bitmap, f); 

     return bitmap; 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
} 

Das Problem ist, dass ist, dass in der Leitung: if (Bitmap = null) Rückgabe Bitmap;

Diese Bedingung gibt nie null zurück, so dass das zwischengespeicherte Bild nie zurückgegeben wird. Wie kann ich sehen, ob die Dekodierung der Datei tatsächlich fehlgeschlagen ist?

Ich weiß, dass das Bild richtig geschrieben wird, weil ich die folgende Protokollausgabe für den Speicherort der Datei erhalten:

/data/data/com.example/cache/1562036938

Vielen Dank für Ihre Hilfe.

Antwort

0

Ein Hinweis: Überprüfen Sie die Dateigröße, bevor Sie dekodieren.

Verwandte Themen