从内部存储加载图像时如何消除滚动滞后?
How can I remove the lag of scroll when loading images from Internal Storage?
我正在尝试从 phone 的内部存储加载图像到 GridView 中。 GridView 在片段中。我有一个 class 存储所有图像的文件路径。我将 class 的数据初始化一次,这样我就不必一次又一次地初始化它。然后我使用 class.
将适配器设置为 GridView
这是我的数据class的功能。
public static void initialize(Cursor cursor) {
int count = cursor.getCount();
allPaths = new String[count];
for (int i = 0; i < count; i++) {
cursor.moveToPosition(i);
int dataColumnIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
allPaths[i] = cursor.getString(dataColumnIndex);
}
cursor.close();
}
这是我的网格适配器:
public View getView(int position, View convertView, ViewGroup parent) {
ImageView mImageView;
if (convertView == null) {
mImageView = new ImageView(mContext);
mImageView.setLayoutParams(new GridView.LayoutParams(250, 250));
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
mImageView = (ImageView) convertView;
}
File f = new File(AllScreenshots.get(position));
Picasso.get().load(f).into(mImageView);
return mImageView;
}
加载图片、滚动网格视图和应用程序变得很慢。
如何让加载、滚动和应用再次流畅快速?
我使用了 RecyclerView 和 Glide 库,而不是 GridView 和 Picasso。在我的 RecyclerView 适配器的 onBindViewHolder 方法中,我使用了 glide 的方法
Glide.with(context).load(AllScreenshots.get(position)).thumbnail(0.5f).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.img);
它解决了我的问题。
我正在尝试从 phone 的内部存储加载图像到 GridView 中。 GridView 在片段中。我有一个 class 存储所有图像的文件路径。我将 class 的数据初始化一次,这样我就不必一次又一次地初始化它。然后我使用 class.
将适配器设置为 GridView这是我的数据class的功能。
public static void initialize(Cursor cursor) {
int count = cursor.getCount();
allPaths = new String[count];
for (int i = 0; i < count; i++) {
cursor.moveToPosition(i);
int dataColumnIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
allPaths[i] = cursor.getString(dataColumnIndex);
}
cursor.close();
}
这是我的网格适配器:
public View getView(int position, View convertView, ViewGroup parent) {
ImageView mImageView;
if (convertView == null) {
mImageView = new ImageView(mContext);
mImageView.setLayoutParams(new GridView.LayoutParams(250, 250));
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
mImageView = (ImageView) convertView;
}
File f = new File(AllScreenshots.get(position));
Picasso.get().load(f).into(mImageView);
return mImageView;
}
加载图片、滚动网格视图和应用程序变得很慢。 如何让加载、滚动和应用再次流畅快速?
我使用了 RecyclerView 和 Glide 库,而不是 GridView 和 Picasso。在我的 RecyclerView 适配器的 onBindViewHolder 方法中,我使用了 glide 的方法
Glide.with(context).load(AllScreenshots.get(position)).thumbnail(0.5f).diskCacheStrategy(DiskCacheStrategy.ALL).into(holder.img);
它解决了我的问题。