package org.cuieney.videolife.ui.adapter; import android.content.Context; import android.graphics.Bitmap; import android.support.v4.util.TimeUtils; import android.support.v4.view.ViewCompat; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; import org.cuieney.videolife.R; import org.cuieney.videolife.common.base.BaseRecycerViewAdapter; import org.cuieney.videolife.common.image.ImageLoader; import org.cuieney.videolife.common.utils.DateUtil; import org.cuieney.videolife.entity.VideoListBean; import org.cuieney.videolife.entity.kaiyanBean.DataBean; import org.cuieney.videolife.entity.kaiyanBean.ItemListBean; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * Created by paohaile on 17/2/24. */ public class VideoAdapter extends BaseRecycerViewAdapter<ItemListBean, RecyclerView.ViewHolder> { public List<Bitmap> mBitmap; private ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5); public VideoAdapter(Context context, List<ItemListBean> list) { super(context, list); mBitmap = new ArrayList<>(); } @Override public int getItemViewType(int position) { if (list.get(position).getType().equals("video")) { if (position == 0) { return R.layout.top_item; } return R.layout.video_item; } else { return R.layout.null_item; } } @Override public RecyclerView.ViewHolder getCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == R.layout.video_item) { return new MyHolder(inflater.inflate(viewType, parent, false)); } return new TopHolder(inflater.inflate(viewType, parent, false)); } @Override public void getBindViewHolder(RecyclerView.ViewHolder holder, final int position) { ItemListBean itemListBean = list.get(position); if (holder instanceof MyHolder) { MyHolder myHolder = (MyHolder) holder; ViewCompat.setTransitionName(myHolder.imageView, String.valueOf(position) + "_image"); DataBean data = itemListBean.getData(); ImageLoader.loadAll(context, data.getCover().getDetail(), myHolder.imageView); myHolder.itemView.setOnClickListener(v -> { if (mClickListener != null) { mClickListener.onItemClick(position, v, myHolder); } }); myHolder.textView.setText(data.getTitle()); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("#").append(data.getCategory()) .append(" ") .append(" / ") .append(" ") .append(DateUtil.formatTime2(data.getDuration())); myHolder.description.setText(stringBuilder.toString()); } } public static class MyHolder extends RecyclerView.ViewHolder { public TextView textView; public TextView description; public ImageView imageView; public MyHolder(View itemView) { super(itemView); textView = ((TextView) itemView.findViewById(R.id.title)); description = ((TextView) itemView.findViewById(R.id.description)); imageView = ((ImageView) itemView.findViewById(R.id.img)); } } public static class TopHolder extends RecyclerView.ViewHolder { private TextView textView; public TopHolder(View itemView) { super(itemView); textView = ((TextView) itemView.findViewById(R.id.name)); } } }