我尝试以这种方式显示本地视频缩略图,它确实在列表中显示了缩略图。然而,该列表变得非常难以滚动。 有更好的方法来解决问题吗? https://futurestud.io/tutorials/glide-displaying-gifs-and-videos
VideoItem current = (VideoItem) getItem(position);
mHolder.mTvName.setText(current.getName());
mHolder.mTvDuration.setText( Utils.convertDuration(current.getDuration()));
mHolder.mTvSize.setText(formatFileSize(mContext, current.getSize()));
Glide.with(mContext)
.load(Uri.fromFile(new File(current.getPath())))
.transform(new GlideRoundTransform(mContext, 12))
.into(mHolder.mIvIcon);
return convertView;
我发现下面的答案也有效:
Uri uri = Uri.fromFile(new File(media.getPath()));
Glide.with(getContext())
.load(uri)
.thumbnail(0.1f)
.into(viewHolderImage.recordedMedia);
终于我找到了解决这个问题的方法。 Glide有一个方法叫做thumbnail(float sizeMultiplier),它只是压缩原始图像的大小。现在我的listView滚动时更加平滑。
Glide.with(mContext)
.load(Uri.fromFile(new File(current.getPath())))
.transform(new GlideRoundTransform(mContext, 16))
.thumbnail(0.1f)
.into(mHolder.mIvIcon);
是的,使用 RecyclerView 代替。它不存储所有图片,只存储那些适合屏幕的图片,并且很少隐藏用于缓存