I developed an application in which I have to display images from a specific folder on an SD card. My code works fine, but it shows all the images that are an SD card. I gave args a choice as the name of my folder, as it indicated the following message:
Displaying images from a specific folder on an SD card using gridview
But that did not work. Please suggest me how to do this: Below I submit my code.
public class Album1Activity extends Activity {
static Cursor imageCursor;
static int columnIndex;
GridView gridView;
Intent in;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid);
String[] imgColumnID = {MediaStore.Images.Thumbnails._ID};
Uri uri = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
imageCursor = managedQuery(uri, imgColumnID, null, null,
MediaStore.Images.Thumbnails.IMAGE_ID);
columnIndex = imageCursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
gridView = (GridView)findViewById(R.id.gridview);
gridView.setAdapter(new ImageAdapter(getApplicationContext()));
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
String[] dataLocation = {MediaStore.Images.Media.DATA};
imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
dataLocation, null, null, null);
columnIndex = imageCursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
imageCursor.moveToPosition(position);
String imgPath = imageCursor.getString(columnIndex);
in = new Intent(getApplicationContext(), FullScreen.class);
in.putExtra("id", imgPath);
startActivity(in);
}
});
}
public static class ImageAdapter extends BaseAdapter{
private Context context;
public ImageAdapter(Context context){
this.context = context;
}
public int getCount() {
return imageCursor.getCount();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv;
if(convertView == null){
iv = new ImageView(context);
imageCursor.moveToPosition(position);
int imageID = imageCursor.getInt(columnIndex);
iv.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
"" +imageID));
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setPadding(5, 5, 5, 5);
iv.setLayoutParams(new GridView.LayoutParams(100, 100));
}
else{
iv = (ImageView)convertView;
}
return iv;
}
}
} // Album1Activity
source
share