在android中显示图像和视频

在android中显示图像和视频,android,android-recyclerview,Android,Android Recyclerview,我试图在一个文件夹中列出所有的图像和视频,但在recyclerview或gridview中设置会得到一个很好的结果。它在卷轴上卡住了。请建议如何更好地显示所有文件 这就是我获取文件的方式 listFile = AllUtils.getFiles(fetchPath, mContext); 在recyclerview中显示零件 public void onBindViewHolder(@NonNull DetailViewHolder holder, final int position) {

我试图在一个文件夹中列出所有的图像和视频,但在recyclerview或gridview中设置会得到一个很好的结果。它在卷轴上卡住了。请建议如何更好地显示所有文件

这就是我获取文件的方式

listFile = AllUtils.getFiles(fetchPath, mContext);
在recyclerview中显示零件

public void onBindViewHolder(@NonNull DetailViewHolder holder, final int position) {
    if (listFile.get(position).toString().contains("mp4")) {
        Bitmap myBitmap = ThumbnailUtils.createVideoThumbnail(listFile.get(position).toString(), MediaStore.Video.Thumbnails.MINI_KIND);
        holder.ivIcon.setImageBitmap(myBitmap);
        holder.ivPlay.setVisibility(View.VISIBLE);
    }
}

在recylerview中显示列表中的图像时,我也遇到了同样的问题。由于recylerview缓存和recyles,因此,对于listfile中的索引,在recylerview中获得位置的视图本身可能会失败。通过将recylerview的缓存大小增加到listfile中的项目数,可以确保recylerview中的位置就是listfile中的确切位置。 在设置适配器之前,将这行代码添加到recylerview

// Let's say you have 30 items in your listfile
// Or if you cannot make sure the number of items give a bigger number 
recyclerView.setItemViewCacheSize(30);

希望有帮助。

在GitHub上,android可以使用各种免费的开源库来处理图像和视频

我认为使用
BitMap
来显示图像不是一个好主意,而不是使用
BitMap
你应该使用
Glide
库来显示图像,使用
fenster
来播放视频

在项目中导入幻灯片

repositories {
  mavenCentral()
  google()
}

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.7.1'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
}
像这样显示图像:

  GlideApp
    .with(myFragment)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.loading_spinner)
    .into(myImageView);
您还可以使用url上传图像

  GlideApp.with(this).load("http://........").into(imageView);
阅读更多关于
而且

glide使拍摄图像变得简单。正在检查fenster的视频缩略图。谢谢。@A2N快乐编码