2016-08-30 14 views
1

私のアプリケーションでは、ユーザーがUrlリンクから画像の数をダウンロードしてSDカードに保存することを許可しています。ダウンロードした新しいイメージが同じ名前の前のイメージを上書きするたびにだから、私は最後にダウンロードされたSDカードに1つの画像しか持っていません。保存した画像がsdカードの前の画像をオーバーライドしています

 try { 
      URL url = new URL(src); 
      URLConnection connection = (URLConnection) url.openConnection(); 
      connection.setDoInput(true); 
      connection.connect(); 
      InputStream input = connection.getInputStream(); 
      bitmap = BitmapFactory.decodeStream(input); 

      ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
      bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes); 

      String filename; 
      Date date = new Date(0); 
      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
      filename = sdf.format(date); 
      File file = new File(Environment.getExternalStorageDirectory() + File.separator + filename + ".jpg"); 

      try { 
       file.createNewFile(); 
       FileOutputStream fo = new FileOutputStream(file); 
       Toast.makeText(getApplicationContext(),filename,Toast.LENGTH_LONG).show(); 
       // 5 
       fo.write(bytes.toByteArray()); 
       fo.close(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      return bitmap; 

     } catch (IOException e) { 
      e.printStackTrace(); 

      return null; 
     } 

私がダウンロードしたすべての画像を保存するのに助けが必要です。

+0

を試してみてください。ランダムジェネレータを使用してイメージの名前を指定します。 –

+0

どうやったらいいか教えてください。 –

+0

単純なタイムスタンプを使用してファイル名を生成します。 – prakash

答えて

2
try this: 

     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     filename = sdf.format(date+ n); 
1

この問題が発生したように、あなたがイメージに同じ名前を与えている。この

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), 
      getString(R.string.images)); 
    Random generator = new Random(); 
    int n = 10000; 
    n = generator.nextInt(n); 
    String fname = "Image-" + n + ".jpg"; 
    File file = new File(mediaStorageDir, fname);