안드로이드 개발 질문/답변
(글 수 45,052)
gridView를 이용하여 웹에서 이미지를 가져와 뿌려주는데 성공을 하였습니다.
총 이미지의 갯수가 화면을 넘어가지 않으면 문제가 되지 않는데, 총 이미지의 갯수가 화면을 넘어가 스크롤이 생겼을때
가 문제입니다.
아래로 스크롤을 움직이면 아래의 이미지는 아직 gridView에 들어가 있지 않고 아래쪽으로 스크롤을 해서 위쪽으로 숨겨진
이미지들을 보기 위해 다시 위로 스크롤을 하면 안보였던 이미지들이 사라져 버려있습니다.
public class ImageAdapter extends BaseAdapter {
Context context;
public ImageAdapter(Context context) {
this.context = context;
}
public boolean deleteSelected(int sIndex){
return true;
}
public int getCount() {
return mPhotos.size();
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView iv;
if(convertView == null){
Log.i("test", "n");
iv = new ImageView(context);
switch(getWindowManager().getDefaultDisplay().getOrientation()){
case 0 :
case 2 :
if(position<3){
iv.setBackgroundResource(R.drawable.paper_list_bg1);
}else{
iv.setBackgroundResource(R.drawable.paper_list_bg2);
}
break;
case 1 :
case 3 :
if(position<5){
iv.setBackgroundResource(R.drawable.paper_list_bg1);
}else{
iv.setBackgroundResource(R.drawable.paper_list_bg2);
}
break;
}
iv.setScaleType(ImageView.ScaleType.FIT_END);
iv.setPadding(23, 0, 23, 32); //배경화면 바꾼 후 다시 셋팅
GridView.LayoutParams param = new GridView.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1);
iv.setLayoutParams(param);
iv.setId(position);
}else{
Log.i("test", "n n");
iv = new ImageView(context);
}
if(position<Img_File.length){
Log.i("test", "setBit"+"/" +position);
iv.setImageBitmap(bmImgFile[position]);
}
return iv;
}해당 getView 소스입니다..




흠..첫번째 진입에서 getView()의 convertView를 생성하지만 2번째부터는
convertView가 null이 아니므로 아무런 연산도 하지 않겠내요.