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

리스트뷰 이미지 관련 질문입니다.

0 추천

커스텀 리스트뷰에 이미지를 넣었습니다. 그런데 3번째 리스트의 이미지가 1번째 리스트에 이미지에도 적용이 됩니다.

생각을 해보니 비트맵을 이용해 작업한 이미지가 다른 포지션에 들어가는것 같네요.

제대로된 위치에 들어가게 할려면 어떻게 해야되는지 궁금합니다. 

코드는 요약해서 올린거에요.

private CustomBitCallBack cc;

public View getView(final int position, View convertView, ViewGroup parent) {
    Holder H;
    if (convertView == null) {
          convertView = mInflater.inflate(R.layout.fragment_item, parent, false);
          H = new Holder();
          convertView.setTag(H);
    } else {
       H = (Holder) convertView.getTag();
    }
    cc = new CustomBitCallBack();
    aQuery.id(H.thumbnail).image(List.get(position).PictureUri, true, true, 100, 0, cc);
}


public class CustomBitCallBack extends BitmapAjaxCallback {
    @SuppressLint("NewApi")
    protected void callback(String url, ImageView iv, Bitmap bm, AjaxStatus status) {
        AsyncBitmap thread = new AsyncBitmap(mContext, iv, bm);
        thread.execute();
    }
}

class AsyncBitmap extends AsyncTask<Void, Void, Bitmap> {

    @Override
    protected Bitmap doInBackground(Void... params) {

        if (bm != null) {
            // 비트맵 작업(라운드 처리)
	}
        return null;
    }

    @Override
    protected void onPostExecute(Bitmap result) {
	
        Drawable dr = new BitmapDrawable(cxt.getResources(), result);

        iv.setBackground(dr);

        super.onPostExecute(result);
    }
}

 

talcer (640 포인트) 님이 2014년 7월 8일 질문
talcer님이 2014년 7월 8일 수정

1개의 답변

0 추천
holder 생성 후 setTag 가 없네요?
aucd29 (218,390 포인트) 님이 2014년 7월 8일 답변
코드 복사 붙여넣기 하다가 빼먹었네요...
...