在搜索了尝试如何做之后,由于我的失败,我提出了这个问题。
重点是我试图在一个图库中显示我从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(),但它不起作用,屏幕上的图片不会改变。
有任何建议如何解决这个问题?
非常感谢。