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

gridview...다시 질문드립니다....

0 추천
@Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  ImageView v_image = null;
  
  if(null != convertView){
   v_image = (ImageView)convertView;
  }else{
   Log.d("--", String.valueOf(position));
   //이미지 사이즈 조정 320 * 240
   Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), Imageids[position]);
   bmp = Bitmap.createScaledBitmap(bmp, 330, 330, false);
   
   
   // 이미지뷰 재정의 
   v_image = new ImageView(context);
   v_image.setAdjustViewBounds(true);
   v_image.setImageBitmap(bmp);
   
   
   
   ImageViewOnClickListener imageviewclick = new ImageViewOnClickListener(context, Imageids[position]);
   v_image.setOnClickListener(imageviewclick);
  }
  return v_image;
 }

이 부분에서.. 이미지가 10개일때.. 0부터 9까지.. 하나씩 차례데로 들어와야하는데..

처음 화면에 보여주는 부분 즉 이미지가 6개가 보여지면 0부터 5까지만 순서대로 들어오구..

스크롤시 다시 0부터 시작합니다; 조언좀 부탁드리구요..

이부분때문에.. 스크롤시 순서가 변경되는건지도 궁금합니다.. 문제가 많네요.. 혼자 공부하려니까..ㅠㅠ

너무 힘듭니다 아까 답변받앗을때는 holder를 사용하라고 하셧는데.. 구글 서치결과.....

제대로된 사이트를 찾기 힘들어서 다시 글을 올립니다 ㅠㅠ 알고 계시는분은 답변좀 부탁드릴게요..

관련 사이트 라도 부탁드립니다 ㅠㅠ

mamongs (4,050 포인트) 님이 2013년 3월 15일 질문

2개의 답변

0 추천

이부분은  댓글로는 설명해 드리기가 그렇습니다...

직접 첨부터 끝까지 홀더패턴에 대해서 자세히 보시고 이해하시는게 좋을거 같습니다.

그리고 이 코드에서는 홀더패턴을 사용 안하셔도 되구요

 

코드자체가 홀더패턴을 사용 안해서 우선 정상적으로 나오도록만 수정한 겁니다. 
if(null != convertView){
            v_image = (ImageView)convertView;

 Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), Imageids[position]);
            bmp = Bitmap.createScaledBitmap(bmp, 330, 330, false);
v_image.setImageBitmap(bmp);
        }

 

이렇게 수정만 하시면 정상적으로 나옴니다...

 

jelly (1,630 포인트) 님이 2013년 3월 15일 답변
http://tigerwoods.tistory.com/14 << 여기 첨부터 끝까지 한번 보시면 될거 같습니다...
jelly님 정말감사합니다 ^^
null이 아닐때.. 셋팅을 해주지 않앗네요..=ㅅ=..
그래서 다시 첨부터 시작한거엿군요;; ㅋㅋㅋㅋ
밑에 써주신 사이트 잘 훑어보겠습니다 감사합니닷!
0 추천
뷰의 재사용 문제같네요

if(null != convertView) {

 ...

} else {

 ...

}

return v_image;

를 보시면 전에 그려졌던 convertView의 경우 이미지를 다시넣지않고 바로 반환하게 되어있는데요

else구문 안에서는 v_image를 생성만 하고

else안에 이미지를 넣는 구문을 if ~ else문 밖으로 빼시면 될 것 같습니다.
Bandroid (1,800 포인트) 님이 2013년 3월 15일 답변
...