2016-10-10 14 views
0

インターネットからの画像をフォルダに保存し、フォルダから読み込むには、後でギャラリーに表示する必要があるため、どのような方法が良いか知りたいと思います。自分のメモリが不足していたり​​、メモリが不足している場合は、ストレージを選択するユーザーオプションを与える必要がありますか?あまりにも多くのスペースを取らないように、どのように最適化する必要があります。一般的には、メモリカードを搭載していないデバイスでも高速、安定、最適化する方法が必要です。あなたのonCreate()メソッドのデータは、画像のURLですウェブから画像をフォルダに保存してから読む

getBitmapFromURL(data); 

答えて

0

。その後、

public Bitmap getBitmapFromURL(String src) { 
    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"); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     filename = sdf.format(n); 
     File myDir=new File("/sdcard/Pictures"); 
     myDir.mkdirs(); 
     String fname = "Image-"+ n +".jpg"; 
     // filename = sdf.format(date); 
     File file = new File(myDir, fname); 
     if (file.exists()) file.delete(); 

     try { 
      file.createNewFile(); 
      FileOutputStream fo = new FileOutputStream(file); 
      sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); 
      Toast.makeText(getApplicationContext(),"Saved to Light Box",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; 
    } 

} 
関連する問題