定期在android中添加图像到gridview

时间:2014-01-13 22:57:26

标签: android gridview

我需要将图像添加到Android中的gridview,这些图像是从手机相机中拍摄的,如下所示:

Intent camera_intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(camera_intent, CAMERA_PIC_REQUEST);

用手机拍照后,我调用了imageAdapter

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch(requestCode){
    case 0:
        if(resultCode==RESULT_OK){
           Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
           GridView gv = (GridView)findViewById(R.id.GridV1);
           gv.setAdapter(new ImageAdapter(this, thumbnail));
         }
    }
}

我使用Android开发人员指南来制作我的网格视图,但是它只显示了如何使用项目文件夹中的预定图像来执行它,并且它同时加载所有这些图像(注意:位图bMap是我从手机拍摄的照片)

public class ImageAdapter extends BaseAdapter {

private Context mContext;
private Bitmap Bit;

public ImageAdapter(Context c, Bitmap bMap) {

    mContext = c;
    Bit = bMap;
}

@Override
public int getCount() {
    return mThumbIds.length;
}

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

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

private Integer[] mThumbIds = {
        R.drawable.sample_0, R.drawable.sample_1,
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7
};

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) { 
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(130, 130));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(10, 10, 10, 10);
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}

}

如何更改此代码以允许我定期添加图片?我已经设法在gridview中获得了1张图片,但是当我尝试添加另一张图片时,它将替换为我拍摄的最后一张图片。

1 个答案:

答案 0 :(得分:0)

每次需要修改适配器的数据时都要设置新的适配器,然后在适配器上调用notifydatasetchanged