SDカードの特定のフォルダの画像を表示する必要があるアプリケーションを開発しました。私のコードは正常に機能していますが、SDカードであるすべての画像が表示されています。次の投稿で取り上げられているため、フォルダ名として選択引数を 指定しました。グリッドビューを使用してSDカード上の特定のフォルダからの画像を表示する
しかし、それはうまくいきませんでした。これを行う方法を教えてください:以下に私のコードを投稿しています。
public class Album1Activity extends Activity {
static Cursor imageCursor;
static int columnIndex;
GridView gridView;
Intent in;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
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};
//String []dataLocation = {Environment.getExternalStorageDirectory().getAbsolutePath()};
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);
}//onItemClickListener
});
}//onCreate
public static class ImageAdapter extends BaseAdapter{
private Context context;
//Album1Activity act = new Album1Activity();
public ImageAdapter(Context context){
this.context = context;
}//ImageAdapter
public int getCount() {
// TODO Auto-generated method stub
return imageCursor.getCount();
}//getCount
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}//getItem
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}//getItemId
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));
}//if
else{
iv = (ImageView)convertView;
}//else
return iv;
}//getView
}//ImageAdapter
} // Album1Activity