开发者

Get gridview with images

i am trying to get the images into a gridview from the sdcard, but i just want to get ONLY the CAMERA files. So this is my code:

public class GrillaActivity extends Activity 
{
    private Cursor imagecursor, actualimagecursor;
    private int image_column_index, actual_image_column_index;
    GridView imagegrid;
    private int count;

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid_view);
    init_phone_image_grid();
}

private void init_phone_image_grid() 
{
    String[] img = { MediaStore.Images.Thumbnails._ID };
 开发者_如何转开发   imagecursor = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, img, MediaStore.Images.Thumbnails.DATA + "='/sdcard/DCIM/Camera/*.*'", null, MediaStore.Images.Thumbnails.IMAGE_ID + "");

    image_column_index = imagecursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID);
    count = imagecursor.getCount();
    imagegrid = (GridView)findViewById(R.id.PhoneImageGrid);
    imagegrid.setAdapter(new ImageAdapter(getApplicationContext()));
    imagegrid.setOnItemClickListener(new OnItemClickListener() 
    {
        public void onItemClick(AdapterView parent, View v, int position, long id) 
        {
            System.gc();
            String[] proj = { MediaStore.Images.Media.DATA };
            actualimagecursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj, MediaStore.Images.Media.DATA + "='/sdcard/DCIM/Camera/*.*'", null, null);
            actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            actualimagecursor.moveToPosition(position);
            String i = actualimagecursor.getString(actual_image_column_index);
            System.gc();

            Intent objI = getIntent();
            objI.putExtra("clickedFile", i);
            setResult(100, objI);
            finish();
        }
    });
}

public class ImageAdapter extends BaseAdapter 
{
    private Context mContext;

    public ImageAdapter(Context c) 
    {
        mContext = c;
    }

    public int getCount() 
    {
        return count;
    }

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

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

    public View getView(int position,View convertView,ViewGroup parent) 
    {
        System.gc();
        ImageView i = new ImageView(mContext.getApplicationContext());
        if (convertView == null) 
        {
            imagecursor.moveToPosition(position);
            int id = imagecursor.getInt(image_column_index);

            i.setImageURI(Uri.withAppendedPath( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, "" + id));

            i.setScaleType(ImageView.ScaleType.CENTER_CROP);
            i.setLayoutParams(new GridView.LayoutParams(92, 92));
        }
        else{
            i = (ImageView) convertView;
        }
        return i;
    }
}

}

I had added a SELECTION in the managedQuery function, but i'm getting an error. So please help me, maybe i'm doing something wrong. Thanks in advance.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜