public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View gridView; if (convertView == null) { gridView = new View(mContext); } else { gridView = (View) convertView; } // get layout from mobile.xml gridView = inflater.inflate(R.layout.file_explorer_grid_item, null); // set value into textview TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label); textView.setText(filePaths[position].getName()); // set image based on selected text ImageView imageView = (ImageView) gridView.findViewById(R.id.grid_item_image); if (filePaths[position].isDirectory()) // Is a folder { // Default view is a generic folder icon. imageView.setImageResource(R.drawable.folder); // How should we handle empty folders / folders with no thumbnails? -> new files gridView = inflater.inflate(R.layout.file_explorer_folder_icon, null); org.libreoffice.ui.FolderIconView icon = (org.libreoffice.ui.FolderIconView) gridView.findViewById(R.id.folder_icon); icon.setDir(filePaths[position]); textView = (TextView) gridView.findViewById(R.id.grid_item_label); textView.setText(filePaths[position].getName()); return gridView; } else { File thumbnailFile = new File( filePaths[position].getParent(), "." + filePaths[position].getName().split("[.]")[0] + ".png"); BitmapFactory factory = new BitmapFactory(); Bitmap thumb = factory.decodeFile(thumbnailFile.getAbsolutePath()); if (thumb != null) { Log.i("GRID", "true"); } else { Log.i("GRID", thumbnailFile.getAbsolutePath()); } switch (FileUtilities.getType(filePaths[position].getName())) { case FileUtilities.DOC: if (thumb != null) { imageView.setImageBitmap(thumb); break; } imageView.setImageResource(R.drawable.writer); break; case FileUtilities.CALC: imageView.setImageResource(R.drawable.calc); break; case FileUtilities.DRAWING: // FIXME: only for now ... case FileUtilities.IMPRESS: imageView.setImageResource(R.drawable.impress); break; case FileUtilities.UNKNOWN: default: break; // FIXME something prettier ? } } return gridView; }