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

갤러리에서 선택된 이미지가 없을경우 디폴트이미지 지정관련 코드 오류좀 봐주세요 ㅠㅠ

0 추천

제가 지금 사용자 등록화면에서 이미지를 갤러리에서 선택할 수 있게끔 구현하였는데요 이미지를 선택하면 그 선택된 uri를 db에 저장하도록했고 갤러리에서 선택을 '안하는 경우'도 발생하잖아요! 이경우

  try{

            str_image =  mImageCaptureUri.toString();

        }catch(Exception e){
            e.printStackTrace();

        }

이렇게 try catch문을 사용해서 선택된 이미지가 있으면 uri를 넣었습니다. 제가 cursorAdapter를 이용한 리스트뷰를 구현하는 중인데 리스트뷰에는 선택하지 않은 이미지들에 대해선 이미지뷰가 비어서 보이네요... 그래서 커스텀리스트뷰를 꾸민 Adapter에서

  try {
  final ImageView image = (ImageView) view.findViewById(R.id.thumbnail);

        Uri mUri = Uri.parse(cursor.getString(cursor.getColumnIndex("licenseimg")));
        int resourceId = R.drawable.smile;

           if (mUri != null) {
               Glide.with(context).load(mUri).into(image);
               image.setImageURI(mUri);
           } else {
               Glide.with(context).load(resourceId).into(image);
               image.setImageResource(resourceId);
           }
       }catch (Exception e){e.printStackTrace();}

이렇게 uri가 있는 경우 이미지 뷰에 갤러리에서 선택된 이미지를 집어넣도록하고 uri가 없는경우는 제가 지정한 drawable에 있는 디폴트 이미지를 넣도록 했는데... 여전히 이미지뷰는 비어있네요 ㅠㅠㅠ 뭐가 문제일까용!!!ㅠㅠ 오류좀봐주세요!!ㅠㅠ

뚜루루루둡 (1,130 포인트) 님이 2016년 11월 23일 질문

1개의 답변

0 추천
 
채택된 답변

 

image.setImageURI(mUri)

image.setImageResource(resourceId) 

위 두줄의 코드는 삭제되어야 할 것 같습니다. 

Glide.with(context).load(mUri).into(image);

위 코드는 

"Glide 라이브러리를 이용해 uri에서 해당 이미지를 Load  한 뒤 image(ImageView) 에 표시하라" 라는 명령입니다.

 

추가로 Glide 의 경우 image load를 실패했을 때의 이미지를 별도로 지정할 수 있습니다.

아래와 같이 error(Drawable) 을 추가하면 됩니다. 

때문에 mUri null 체크는 굳이 하지 않으셔도 무방할 것으로 판단됩니다.   

도움이 되셨길...

Glide.with(context).load(mUri).error(drawble).into(image);
빅배스 (4,260 포인트) 님이 2016년 11월 24일 답변
뚜루루루둡님이 2016년 11월 25일 채택됨
헐!!감사합니다 ㅠㅠㅠ 적용됐어요!!! 괜히 코드만 복잡하게쓰고있었네요 ㅠㅠ 정말감사합니다!
...