2016-07-15 2 views
0

я сохранить растровое изображение в сд карты со следующим кодомандроид сохранить растровый в сд карты

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-карте, тогда не сохраняйте изображение. У меня есть только одно имя для изменения изображения изображения, но его имя остается таким же, пожалуйста, скажите, что я хочу сохранить одно изображение только один раз, если значение битмапа изменится, тогда изображение сохранить другое изображение не будет сохранено.

+0

Я бы разместить некоторые ссылки, но есть _so_ many 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-карте, которое совпадает с тем, которое вы загрузили в качестве растрового изображения, и если оно существует _not_ сохранить его? Это займет много работы. Android просто видит их как файлы, вам придется загрузить их все, получить их байтовые значения, а затем сравнить. Это было бы неэффективно ни в какой форме, форме или форме. – zgc7009

ответ

0

Функция вы ищете является File.Exists()

После создания файла файла перейдите

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

Edit: Полный код

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

Смежные вопросы