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이 아닌 위치에 대해 호출되지 않으며 각 파일이 목록에 추가되고 목록 크기가 올바른 파일 수. 이것은 왜 발생 하는가?