makcar/app/src/main/java/com/aros/apron/tools/GalleryAdapter.java

90 lines
3.1 KiB
Java

package com.aros.apron.tools;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import com.aros.apron.R;
import com.aros.apron.base.BaseAdapter;
import com.aros.apron.base.BaseHolder;
import com.aros.apron.databinding.ItemGalleryBinding;
import dji.v5.common.callback.CommonCallbacks;
import dji.v5.common.error.IDJIError;
import dji.v5.manager.datacenter.media.MediaFileListData;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
/**
* 相册
*/
public class GalleryAdapter extends BaseAdapter<String, ItemGalleryBinding> {
MediaFileListData mediaFileListData;
private Activity context;
@Override
protected void onBindingData(BaseHolder<ItemGalleryBinding> holder, String s, int position) {
holder.getViewBinding().tvName.setText(mediaFileListData.getData().get(position).getFileName());
holder.getViewBinding().tvTime.setText(mediaFileListData.getData().get(position).getDate().getMonth() + "--" + mediaFileListData.getData().get(position).getDate().getDay());
if (mediaFileListData.getData().get(position).getThumbNail() != null) {
holder.getViewBinding().ivGallery.setImageBitmap(mediaFileListData.getData().get(position).getThumbNail());
} else {
mediaFileListData.getData().get(position).pullThumbnailFromCamera(new CommonCallbacks.CompletionCallbackWithParam<Bitmap>() {
@Override
public void onSuccess(Bitmap bitmap) {
AndroidSchedulers.mainThread().scheduleDirect(new Runnable() {
@Override
public void run() {
if ((int) holder.getViewBinding().ivGallery.getTag() == position) {
holder.getViewBinding().ivGallery.setImageBitmap(bitmap);
}
}
});
}
@Override
public void onFailure(@NonNull IDJIError idjiError) {
AndroidSchedulers.mainThread().scheduleDirect(new Runnable() {
@Override
public void run() {
holder.getViewBinding().ivGallery.setImageDrawable(context.getDrawable(R.mipmap.ic_launcher));
}
});
}
});
}
}
@Override
protected ItemGalleryBinding onBindingView(ViewGroup viewGroup) {
ItemGalleryBinding itemGalleryBinding = ItemGalleryBinding.inflate(LayoutInflater.from(viewGroup.getContext()), viewGroup, false);
return itemGalleryBinding;
}
public void setData(MediaFileListData datas) {
this.mediaFileListData = datas;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
if (mediaFileListData != null) {
return mediaFileListData.getData().size();
} else {
return 0;
}
}
}