picasso를 이용해 url에서 이미지 받아올 때 질문입니다.


현재 recyclerview를 사용하고 있고 picasso를 이용해 url에서 이미지를 받아오고 있습니다. json 파싱도 이용중입니다.

처음에 데이터를 30개 받아와서 recyclerview에 뿌려주고 스크롤이 바닥에 닿으면 데이터를 30개 더 받아와서 이어서 보여주고 있습니다. 근데 중간에 클랜이 없으면 클랜이름과 클랜마크(이미지 from url)를 그냥 공백으로 나타내야 하는데 되질 않습니다. ㅜㅜ

@Override
public void onBindViewHolder(RankingRecyclerItemViewHolder holder, int position) {
    RankingRecyclerViewItem item = RankingRecyclerViewItemList.get(position);

    holder.sunwiTxv.setText(item.sunwi);
    Picasso.with(context).load(item.getUrl_image()).resize(40, 40).into(holder.clanImage);
    holder.ladderTxv.setText(item.ladder);
    holder.winrateTxv.setText(item.winrate);
    holder.clanTxv.setText(item.clan);
    holder.idTxv.setText(item.name);

}

이건 리사이클러뷰 adapter의 내용중 일부이고

                String clan = childJsonObject.getString("clan");

                if (clan == null) {
                    RankingRecyclerViewItem.clan = null;
                    RankingRecyclerViewItem.url_image = null;
                } else {
                    RankingRecyclerViewItem.clan = childJsonObject.getString("clan");

이건 메인에서 사용할때입니다.

어떻게 코딩을 구사해야 할까요? ㅜㅜ 이미지가 없는것은 url이 존재하지 않습니다. 이미지가 없을때 공백으로 나타내려면 어떡해야 하나요? ㅜㅜ

  • 2016년 07월 23일에 작성됨
    지금 공익근무 중이고 안드로이드를 공부하고 있습니다.

  • Picasso 의 placeholer() , error() 를 사용하시면 편합니당    최봉재   2016.7.27 14:12     
조회수 284


1 답변


이미지가 존재하지 않을 때, 빈 화면을 보여주고 싶은 것이라면 onBindViewHolder() 함수에서 holder.clanImage를 Visible, Invisible 처리해보세요.

if (item.getUrl_image() != null) {
    holder.clanImage.setVisibility(View.VISIBLE);
    Picasso.with(context).load(item.getUrl_image()).resize(40, 40).into(holder.clanImage);    
} else {
    holder.clanImage.setVisibility(View.INVISIBLE);
}


  • E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaebf10e0 이런 에러만 나오고 나오질 않습니다. ㅜㅜ    kyudongPark   2016.7.24 20:35     
  • 나오지 않는다는 게 이미지가 나와야할 때 나오지 않는다는 말씀인가요? 올려주신 에러는 해당 현상과 직접적인 영향은 없어보입니다.     한로니로니   2016.7.25 09:54     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close