Android:尝试为gallery view构建自定义适配器,并在运行时动态向其中添加图像

Android:尝试为gallery view构建自定义适配器,并在运行时动态向其中添加图像,android,gallery,adapter,Android,Gallery,Adapter,我正在尝试使用图库视图显示用户选择的图片。我从BaseAdapeter(见下文)构建了一个自定义适配器来存储自定义的“Pic”对象,每个对象存储一个位图和图像的路径。当活动启动时,适配器将在没有任何图片的情况下创建,当用户选择图像时,我将向适配器添加一个图片,并将适配器重置为图库(见下文)。事实上发生的一切都无关紧要。没有错误或任何东西,但当将Pic添加到适配器并重置时,gallery不会更新和显示图像。我将发布完整的适配器代码以及添加Pic并重置适配器的方法。任何帮助都将不胜感激,或者如果我做

我正在尝试使用图库视图显示用户选择的图片。我从BaseAdapeter(见下文)构建了一个自定义适配器来存储自定义的“Pic”对象,每个对象存储一个位图和图像的路径。当活动启动时,适配器将在没有任何图片的情况下创建,当用户选择图像时,我将向适配器添加一个图片,并将适配器重置为图库(见下文)。事实上发生的一切都无关紧要。没有错误或任何东西,但当将Pic添加到适配器并重置时,gallery不会更新和显示图像。我将发布完整的适配器代码以及添加Pic并重置适配器的方法。任何帮助都将不胜感激,或者如果我做错了,请适当地指导我。提前谢谢

我创建的GalleryImage适配器:

public class GalleryImageAdapter extends BaseAdapter implements Serializable {

private Context mContext;

private List<Pic> pictures;

public GalleryImageAdapter(Context context) 
{
    mContext = context;
    pictures = new ArrayList<Pic>();
}

public void addPicture(Pic p){
    pictures.add(p);
}

public void removePicture(Pic p){
    pictures.remove(p);
}

public int getCount() {
    return pictures.size();
}

public List<Pic> getAll(){
    return pictures;
}

public Object getItem(int position) {
    if (pictures.size() > position){
        return pictures.get(position);
    }
    else{
        return position;
    }
}

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


// Override this method according to your need
public View getView(int index, View view, ViewGroup viewGroup) 
{
    // TODO Auto-generated method stub
    ImageView i = new ImageView(mContext);

    i.setImageBitmap(pictures.get(index).getImage());
    i.setLayoutParams(new Gallery.LayoutParams(200, 200));

    i.setScaleType(ImageView.ScaleType.FIT_XY);

    return i;
}
}

Gallery已被弃用,您应该考虑使用或。在上面的链接中有一个使用适配器的ViewPager的好例子。对于HorizontalScrollView,您只需膨胀视图并调用horiztonalscrollview.addView(查看您的视图)即可在运行时添加内容

private void AddNewAfterSelection(Pic pic){
    giAdapter.addPicture(pic);
    gallery1.setAdapter(giAdapter);
}