URL을 이용해서 서버로부터 사진을 가져오려고 합니다.
현재 코드는 ArrayList에 URL을 저장해놓고
한번에 하나씩 http연결을 해서.. 사진을 가져오는 것입니다.
즉.. Arraylist 사이즈가 10 (url이 10개)라면
http 요청을 10번을 보냅니다....
뭔가 비효율적인거같아서 코드를 수정하려 합니다.
Arraylist에 있는 url을 한번에 사진으로 받을 수 있을까요..?
public class Bitmap_GetFromURL extends Thread{
// URL_ArrayList ul = URL_ArrayList.getInstance();
BibleInfo_ArrayList ul = BibleInfo_ArrayList.getBible_ArrayList();
BibleInfo_Array_BitmapConverted ul2 = BibleInfo_Array_BitmapConverted.getBible_ArrayList();
//URL로부터 얻은 bitmap 을 저장시킬 bitmap array
public void run(){
getBitmap();
}
private void getBitmap(){
HttpURLConnection conn;
Bitmap bitmap;
BibleInfo_FromServer cur_bible;
Iterator<BibleInfo_FromServer> it = ul.iterator();
// URL_ArrayList 하나하나에 대해서 반복문에서 http연결을 하고 bitmap을 가져옴.
int i=0;
while(it.hasNext()) {
try {
//url제공.
cur_bible = it.next();
URL url = new URL(cur_bible.picture);
// Log.d("메시지", "url 얻는 부분에서 cur_bible.picture = "+ cur_bible.picture);
conn = (HttpURLConnection)url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream input = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(input);
//가져온 Bitmap들을 Bitmap_ArrayList에 저장함.
cur_bible.bitmap = bitmap;
ul2.add(cur_bible);
}
catch(Exception e){
}
}