1

在搜索了一个尝试如何做之后,由于我的失败,我提出了这个问题。

关键是我试图在画廊中展示我从 http 服务器获得的几张图片。问题是当我第一次打开活动时,如果图片不在特定文件夹、本地缓存中,我会显示默认图片,然后我会通过 AsyncTask 启动图片下载。我尝试的是在图片下载并保存在文件夹中后,更新/刷新活动中的图库以显示图片。如果我向左/向右滑动图库,则在刷新图库时会出现图片,但我希望发生这种情况以避免滑动图库。

还要注释基本适配器始终正确引用图片,如果文件夹中不存在文件,则选择默认图片。

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView i = new ImageView(mContext);
    i.setImageBitmap(getPicturePath(position + 1));
    i.setLayoutParams(new Gallery.LayoutParams(wHeight / 3, wHeight / 4));
    i.setScaleType(ImageView.ScaleType.FIT_XY);
    i.setBackgroundResource(mGalleryItemBackground);

    return i;
}

private Bitmap getPicturePath(int picture) {
    String picturePath = Environment.getExternalStorageDirectory()
            .getAbsolutePath()
            + "/pictures/" + picture
            + ".jpg";
    File f = new File(picturePath);
    if (f.exists())
        return BitmapFactory.decodeFile(picturePath);
    else
        return BitmapFactory.decodeResource(mContext.getResources(),
                R.drawable.no_image);
}

我尝试在图库中使用 invalidate() 并在适配器 baseadapter 中使用 notifyDataSetChanged(),但它不起作用,屏幕上的图片不会改变。

任何建议如何解决这个问题?

非常感谢。

4

0 回答 0