2016-07-15 6 views
0

i speichern Sie die Bitmap in SD-Karte mit dem folgenden Codeandroid speichern Bitmap in SD-Karte

String root = Environment.getExternalStorageDirectory().toString(); 
     File myDir = new File(root + "/saved_images"); 
     myDir.mkdirs(); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 

     String fname = "Image" +".jpg"; 
     // String imageInSD1 = Environment.getExternalStorageDirectory().getAbsolutePath() +"/saved_images/" + fname; 
     File file = new File (myDir, fname); 
     // if (file.exists()) file.delete(); 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      bitmap_profile1.compress(Bitmap.CompressFormat.JPEG, 100, out); 
      out.flush(); 
      out.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

seine Arbeit gut, aber Problem ist das ich das in Schleife mache, die sich langsam langsam alle 5 Sekunden das Bild laufen demage . Ich möchte das Bild nur einmal speichern, wie kann ich dies überprüfen, wenn das Bild bereits in SD-Karte ist, dann nicht das Bild speichern, ich habe nur einen Namen für Bild ändern, aber der Name bleibt gleich Bitte sagen Sie mir, ich möchte das eine Bild speichern nur für eine Zeit, wenn Bitmap-Wert ändern dann Bild speichern andere Bild speichern nicht.

+0

würde schreiben einige Links, aber es gibt _so_ viele https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=android%20check%20if%20file%20exists%20on%20sd% 20card – zgc7009

+0

Ich habe ein Problem mit Bitmap, welches den Dateinamen ändert –

+0

Sie möchten wissen, ob auf der SD-Karte ein Bild gespeichert ist, das mit dem Bild übereinstimmt, das Sie als Bitmap geladen haben, und wenn es existiert _nicht_ es speichern? Das würde ein gutes Stück Arbeit erfordern. Android sieht nur diese als Dateien, Sie müssten alle von ihnen laden, ihre Byte-Werte abrufen und dann vergleichen. Es wäre in keiner Weise effizient, Form oder Form. – zgc7009

Antwort

0

Die Funktion, die Sie suchen ist File.Exists()

nach dem Datei-Datei erstellt haben,

if(!file.exists()) 
    try{... 
     .... 

bearbeiten gehen: I Voll Code

String root = Environment.getExternalStorageDirectory().toString(); 
    File myDir = new File(root + "/saved_images"); 
    myDir.mkdirs(); 
    Random generator = new Random(); 
    int n = 10000; 
    n = generator.nextInt(n); 

    String fname = "Image" +".jpg"; 
    File file = new File (myDir, fname); 
    if (file.exists()) // only try to save picture if it doesn't exist already 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      bitmap_profile1.compress(Bitmap.CompressFormat.JPEG, 100, out); 
      out.flush(); 
      out.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
+0

Ich habe eine Bitmap, die nicht ändern Dateiname Ich möchte, wenn die gleiche Bitmap im Ordner ist dann nicht speichern –

+0

Und das ist früh, was ich Ihnen gezeigt habe. – Squirrelkiller

+0

Wenn ich nach Hause komme, gebe ich Ihnen eine vollständige Code-Lösung. – Squirrelkiller

Verwandte Themen