2016-07-15 66 views
0

我保存在SD卡中的位圖用下面的代碼安卓保存位圖

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(); 
     } 

其工作正常,但問題是這樣的我在循環做這裏面運行每5秒圖像慢慢慢慢DEMAGE 。我只想保存圖像一次我如何檢查這個如果圖像已經在SD卡然後不保存圖像我只有一個名稱的圖像圖像更改,但其名稱保持不變請告訴我想保存一個圖像只有一次,如果位圖值改變,然後圖像保存othervise圖像不保存。

+0

我會發布一些鏈接,但有很多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

我有位圖的問題,而不是文件名的變化 –

+0

你想知道是否有一個圖像保存到SD卡,匹配你已經加載爲位圖,如果它存在_不保存它?這需要很多工作。 Android只是將它們視爲文件,您將不得不加載所有文件,獲取它們的字節值,然後進行比較。它不會以任何方式,形狀或形式有效。 – zgc7009

回答

0

你要找的功能是file.exists()

創建檔案文件後,轉至

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

編輯:全碼

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

我有一個位圖,它不改變文件名,我想當相同的位圖在文件夾中,然後不保存 –

+0

這就是我剛纔向你展示的。 – Squirrelkiller

+0

當我回家時,我會給你一個完整的代碼解決方案。 – Squirrelkiller