package com.hotbitmapgg.moequest.adapter;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.hotbitmapgg.moequest.R;
import com.hotbitmapgg.moequest.adapter.helper.AbsRecyclerViewAdapter;
import com.hotbitmapgg.moequest.entity.douban.DoubanMeizi;
import com.hotbitmapgg.moequest.widget.RatioImageView;
import java.util.ArrayList;
import java.util.List;
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.TextView;
public class DoubanMeiziAdapter extends AbsRecyclerViewAdapter {
private List<DoubanMeizi> meiziList = new ArrayList<>();
public DoubanMeiziAdapter(RecyclerView recyclerView, List<DoubanMeizi> meiziList) {
super(recyclerView);
this.meiziList = meiziList;
}
@Override
public ClickableViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
bindContext(parent.getContext());
return new ItemViewHolder(
LayoutInflater.from(getContext()).inflate(R.layout.card_item_meizi, parent, false));
}
@Override
public void onBindViewHolder(ClickableViewHolder holder, int position) {
if (holder instanceof ItemViewHolder) {
final ItemViewHolder itemViewHolder = (ItemViewHolder) holder;
itemViewHolder.mTextView.setText(meiziList.get(position).getTitle());
Glide.with(getContext())
.load(meiziList.get(position).getUrl())
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(R.drawable.placeholder_image)
.into(itemViewHolder.ratioImageView)
.getSize((width, height) -> {
if (!itemViewHolder.item.isShown()) {
itemViewHolder.item.setVisibility(View.VISIBLE);
}
});
itemViewHolder.ratioImageView.setTag(R.string.app_name, meiziList.get(position).getUrl());
ViewCompat.setTransitionName(itemViewHolder.ratioImageView, meiziList.get(position).getUrl());
}
super.onBindViewHolder(holder, position);
}
@Override
public int getItemCount() {
return meiziList.size();
}
public class ItemViewHolder extends AbsRecyclerViewAdapter.ClickableViewHolder {
public RatioImageView ratioImageView;
public TextView mTextView;
public View item;
public ItemViewHolder(View itemView) {
super(itemView);
item = itemView;
ratioImageView = $(R.id.item_img);
mTextView = $(R.id.item_title);
ratioImageView.setOriginalSize(50, 50);
}
}
}