如何从Gallery android刷新当前图片

时间:2012-07-17 12:21:35

标签: android refresh gallery invalidation

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

重点是我试图在一个图库中显示我从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(),但它不起作用,屏幕上的图片不会改变。

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

非常感谢。

0 个答案:

没有答案