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

GridView 스크롤시 문제;;

0 추천
GridVIew 처음화면은 이미지가 잘나옵니다 순서대로..

근데 스크롤하면 10개의 이미지가 잇다는 가정하에..

 

 

7개까지는 한화면에 나와서 제대로 순서대로 나오는데..

그이후 아래 이미지가 제대로 안나오는게 문제구요..

다시올리면 순서가 바뀌어있습니다; 이거 왜그럴까요??;
mamongs (4,050 포인트) 님이 2013년 3월 15일 질문

2개의 답변

0 추천
홀더 뷰 작성을 잘못 하신것 같습니다.

머 라설명을 드려야 할까요???

홀더를 사용하실때는 뷰의 구조만 재사용 하고 안의 내용은 다시 정의 해주어야 합니다.
ThisPlus (46,920 포인트) 님이 2013년 3월 15일 답변
@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;
    }


이부분이 잘못됫다는건가요??
코드자체가 홀더패턴을 사용 안해서 우선 정상적으로 나오도록만 수정한 겁니다.
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);
        }
0 추천
Holder 패턴을 한번 보시면 될거 같습니다. ㅎㅎ;;
jelly (1,630 포인트) 님이 2013년 3월 15일 답변
...