개발 - 안드로이드

안드로이드 ListView에 ImageView 이미지 넣기

개미v 2023. 10. 3. 08:53

안드로이드 리스트 뷰에 이미지를 넣는 방법 입니다.

처음에는 Adaptor의 getView 메소드에서 쓰레드로 비동기 처리하려고 했는데 에러가 나서 잘 되지 않았습니다.
리스트의 이미지가 빠지기도 하고, 스크롤 하면 에러나기도 하고 정확하게 왜 안되는지는 모르겠습니다.

 

 

피카소 라이브러리

검색해보니 피카소 라이브러리를 사용하면 다운로딩, 캐싱, 메모리 관리 등 어려운 것을 자동으로 처리 해준다고 합니다.

build.gradle
기존 파일에서 라이브러리를 추가 합니다.

implementation 'com.squareup.picasso:picasso:2.8'

 

UserAdapter.java
getView 메소드에서 사진 부분을 피카소 라이브러리를 사용해서 처리

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = layoutInflater.inflate(R.layout.item_talk, null);

    // 사진
    if (userList.get(position).getUserPictureUrl() != null) {
        Picasso.get()
                .load(userList.get(position).getUserPictureUrl().toString())
                .into((ImageView) view.findViewById(R.id.imageViewUserPicture));
    }
}

※ 이미지는 URL 통해서 불러왔는데, 앱 내부 파일(R.raw.user) 방법은 다른 게시물로 따로 올립니다.