先放一张效果图
最近在做视频剪辑的项目然后要显示相册里面的视频给用户选择,刚开始是想用listview来做后来发现BaseRecyclerViewAdapterHelper框架,这真是好框架,代码少了好多,随便配置一下就可以用了,OK入正题.
首先先导入框架,在模块的build.gradle的dependencies下面添加
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
然后sync Now 如果报ERROR: Failed to resolve: com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30那在项目的build.gradle的allprojects里面添加
maven {url “https://jitpack.io” }
然后再sync Now然后就是新建一个类作为数据对象代码如下
package com.b.myapplication;
import android.graphics.Bitmap;
import java.io.Serializable;
public class LocalVideoBean {
private String path;
private long duration=0;
private long size;
private String thumbPath;
private Bitmap bitmap;
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public long getDuration() {
return duration;
}
public void setDuration(long duration) {
this.duration = duration;
}
public String getThumbPath() {
return thumbPath;
}
public void setThumbPath(String thumbPath) {
this.thumbPath = thumbPath;
}
public Bitmap getBitmap() {
return bitmap;
}
public void setBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
}
}
然后就是adapter类继承BaseItemDraggableAdapter代码如下
package com.b.myapplication;
import android.net.Uri;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.chad.library.adapter.base.BaseItemDraggableAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import java.io.File;
import java.util.List;
public class LocalVideoAdapter extends BaseItemDraggableAdapter<LocalVideoBean, BaseViewHolder> {
public LocalVideoAdapter(@Nullable List<LocalVideoBean> data) {
super(R.layout.local_video_item, data);
}
@Override
protected void convert(BaseViewHolder helper, LocalVideoBean item) {
ImageView imageView = helper.getView(R.id.image_view);
RequestOptions options = new RequestOptions()