2014-04-25 2 views
0

GridView의 특정 디렉토리에 모든 이미지를 표시하려하지만 첫 번째 이미지 만 표시됩니다. 그것은GridView는 디렉토리의 첫 번째 이미지 만 나열합니다.

public void getImageFiles() { 
    File dir = new File(Environment.getExternalStorageDirectory(), "img"); 
    if (dir.isDirectory()) 
     for (File f : dir.listFiles()) 
      for (String ext : IMAGE_EXTENSIONS) 
       if (f.getName().toLowerCase().endsWith(ext)) { 
        Log.d(f.toString(), "Adding file"); 
        files.add(f.getAbsolutePath()); 
       } 
} 

imageAdapter()

public class ImageAdapter extends BaseAdapter { 
    private Context context; 

    public ImageAdapter(Context context) { 
     this.context = context; 
    } 

    public int getCount() { 
     return files.size(); 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     Log.d("", "Getting image " + files.get(position).toString()); 
     ImageView c; 
     if (convertView == null) { 
      c = new ImageView(context); 

      c.setLayoutParams(new GridView.LayoutParams(160, 160)); 
      c.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      c.setPadding(8,8,8,8); 
     } else { 
      c = (ImageView) convertView; 
     } 
     Bitmap myBitmap = BitmapFactory.decodeFile(files.get(position)); 
     c.setImageBitmap(myBitmap); 

     return c; 
    } 
} 

로깅과 함께 자리에 :

에서 onCreate에서 :

iconGrid = (GridView) findViewById(R.id.iconGrid); 
getImageFiles(); 
iconGrid.setAdapter(new ImageAdapter(this)); 

getImageFiles을 (를) 내가 사용 무엇인가 getView()가 0이 아닌 위치에 대해 호출되지 않으며 각 파일이 목록에 추가되고 목록 크기가 올바른 파일 수. 이것은 왜 발생 하는가?

답변

0

모든 것이 GridView에 추가되었지만 아래로 스크롤하고 열 수를 변경하지 않으면 표시되지 않았습니다.

관련 문제