滚动时刷新 GridView 缩略图
GridView Thumbnails refreshed when scrolling
在我的 Android 应用程序中,我使用 Universal Image Loader 库在 GridView 中显示 SD 卡中的照片。我还设置了 cacheInMemory(true)(就像这里:UIL)。
为了显示图片,我使用带有 ViewHolder 模式的 ArrayAdapter。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
File item = data.get(position);
if (row == null) {
holder = new ViewHolder();
row = mInflater.inflate(layoutResourceId, null);
holder.image = (ImageView) row.findViewById(R.id.picture);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
if (item.isFile()) {
String uri = Uri.fromFile(f).toString();
String decodedUri = Uri.decode(uri);
Globals.ImageLoader.displayImage(decodedUri, holder.image);
}
return row;
}
在库中滚动时,每次滚动缩略图都会刷新,再次滚动缩略图时会刷新。这对用户来说不是很舒服。我想将图像保存到内存中并快速加载它们。
可能吗?
我向 UIL 添加了一些其他参数:
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Config.RGB_565)
和
.memoryCacheSizePercentage(50)
来自 config,看起来不错。
在我的 Android 应用程序中,我使用 Universal Image Loader 库在 GridView 中显示 SD 卡中的照片。我还设置了 cacheInMemory(true)(就像这里:UIL)。
为了显示图片,我使用带有 ViewHolder 模式的 ArrayAdapter。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
File item = data.get(position);
if (row == null) {
holder = new ViewHolder();
row = mInflater.inflate(layoutResourceId, null);
holder.image = (ImageView) row.findViewById(R.id.picture);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
if (item.isFile()) {
String uri = Uri.fromFile(f).toString();
String decodedUri = Uri.decode(uri);
Globals.ImageLoader.displayImage(decodedUri, holder.image);
}
return row;
}
在库中滚动时,每次滚动缩略图都会刷新,再次滚动缩略图时会刷新。这对用户来说不是很舒服。我想将图像保存到内存中并快速加载它们。
可能吗?
我向 UIL 添加了一些其他参数:
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Config.RGB_565)
和
.memoryCacheSizePercentage(50)
来自 config,看起来不错。