마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

외부이미지 받아와서 listview에 뿌리기

0 추천

안녕하세요 ㅎ

안드로이드 개발 공부중인 학생인데요 ㅎㅎ

개발을 하다가 보니 웹서버 즉 인터넷에서 돌아댕기는 이미지를 불러와서

형식에 맞게 배열안에 넣고 싶은데요.

public boolean loadImageFromURL(String Url){
    try {

        URL imgurl = new URL(Url);
        HttpURLConnection conn = (HttpURLConnection) imgurl.openConnection();
        conn.setDoInput(true);
        conn.connect();

        InputStream input = conn.getInputStream();
        bmp1 = BitmapFactory.decodeStream(input);

        //img.setImageBitmap(BitmapFactory.decodeStream(input));

        return true;
    }catch (MalformedURLException e){
        e.printStackTrace();
    }catch (Exception e){
        e.printStackTrace();
    }
    return false;
}

 

위에처럼 웹에있는 이미지를 불러와서

bitmap 변수 bmp1에 넣었습니다.

이걸 어떻게 배열에 넣어서 listview에 뿌려줄까요?ㅠㅠ

이미지 자체를 배열에 넣는 방법은 없을까요?

img.setImageBitmap 이용해 Imageview에 넣는거는 알겠지만

listview에 뿌릴꺼라서 ㅠㅠ

익명사용자 님이 2015년 12월 9일 질문

2개의 답변

0 추천
배열을 하나 만들어두고 리스트 인덱스에 따라서 이미지가 로드될때마다 해당인덱스에 채워주면 되긴됩니다만..

네트워크를 이용한 이미지 리스트 뷰의 최고 정점은 아무래도 구글플레이 스토어겠죠.

기본적으로 원격지 이미지를 로드하기 위해서는 리스트 뷰의 스크롤스테이트를 보고 리스트가 멈춰있는경우에 해당 화면에 나타나는 리스트 뷰의 갯수 및 인덱스만 이미지 요청을 하고 스크롤이 바뀐경우에도 이미지가 받아져있는지 요청중인지 이미 뿌린건지 판단해서 캐쉬처리를 하여 재요청을 방지하고 week reference 등을 사용해서 속도 및 메모리 문제를 해결해야합니다. 복잡하죠...

기본적으로 공부한다 생각하시고 최대한 속도가 빠르게 나올수 있도록 위의 사항을 고민해야됩니다.

그러면 유니버셜 이미지로더나 Volley 를 이용한 네트워크이미지뷰를 사용하는게 답이라는

결론을 얻게 되죠..ㅋㅋ
라쎄린드 (25,460 포인트) 님이 2015년 12월 9일 답변
외부이미지라이브러리 말씀하시는건가요??
혹시 몇개만 추천받을수 있을까요?
그게 혹시 머 html파싱할때 외부라이브러리 제리코 쓰는것처럼
이미지를 받아올때 쓰는 외부라이브러리가 따로있다는거죠?ㅎㅎ
외부라이브러리가 따로 있는게 아니라...이것저것 엄청나게 고민하면서 만들어봐도 라이브러리만 못하다 라는결론이죠 ㅠ_ㅠ
아랫분이 추천한거라던지 여러가지 써보고 본인이 가장 구현하기 쉽고
잘돌아가는 것으로 사용하는게 좋습니다. 참고로 카카오도 volley 나AUIL 사용합니다.

아래 블로그에 엄청 자세하게 나와있네요~
http://gun0912.tistory.com/17
0 추천
전 Glide 추천합니다. 전체적인 쉬운 사용법, 성능 등이 제겐 가장 맘에 드네요.

그외의 유명 이미지 라이브러리로는 먼저 답해주신 분의 AUIL, Volley도 있고, 피카소 등이 있습니다.

페이스북이 만든 fresco라는 놈도 있지만, 요건 안 써봐서..
cc1232 (35,280 포인트) 님이 2015년 12월 9일 답변
Glide 라는게 외부라이브러리 말씀하시는건가요?ㅠㅠ
cc1232 님 댓글보고 정보 많이 줏어갑니다. ㅎㅎㅋ
네, 글라이드도 외부 라이브러리입니다. 물론 공짜로 쓰실 수 있는 겁니다 ^^
...