package com.liyu.fakeweather.ui.reading.adapter; import android.content.Context; import android.graphics.Bitmap; import android.support.v4.graphics.drawable.RoundedBitmapDrawable; import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; 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 com.liyu.fakeweather.R; import com.liyu.fakeweather.model.XianduItem; import com.liyu.fakeweather.utils.WebUtils; import java.util.List; /** * Created by liyu on 2016/12/9. */ public class XianduAdapter extends RecyclerView.Adapter<XianduAdapter.XianViewHolder> { private List<XianduItem> xiandus; private Context context; private LayoutInflater inflater; public XianduAdapter(Context context, List<XianduItem> list) { this.context = context; this.xiandus = list; this.inflater = LayoutInflater.from(context); } public void setNewData(List<XianduItem> data) { this.xiandus = data; notifyDataSetChanged(); } public List<XianduItem> getData() { return xiandus; } public void addData(int position, List<XianduItem> data) { this.xiandus.addAll(position, data); this.notifyItemRangeInserted(position, data.size()); } @Override public XianViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.item_xiandu, parent, false); XianViewHolder holder = new XianViewHolder(view); return holder; } @Override public void onBindViewHolder(final XianViewHolder holder, int position) { final XianduItem item = xiandus.get(position); holder.rootView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { WebUtils.openInternal(context, item.getUrl()); } }); holder.tv_name.setText(String.format("%s. %s", position + 1, item.getName())); holder.tv_info.setText(item.getUpdateTime() + " • " + item.getFrom()); Glide.with(context).load(item.getIcon()).asBitmap().diskCacheStrategy(DiskCacheStrategy.ALL).fitCenter().into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { RoundedBitmapDrawable circularBitmapDrawable = RoundedBitmapDrawableFactory.create(context.getResources(), resource); circularBitmapDrawable.setCircular(true); holder.iv.setImageDrawable(circularBitmapDrawable); } }); } @Override public int getItemCount() { return xiandus == null ? 0 : xiandus.size(); } @Override public long getItemId(int position) { return xiandus.get(position).hashCode(); } class XianViewHolder extends RecyclerView.ViewHolder { TextView tv_name; TextView tv_info; ImageView iv; View rootView; public XianViewHolder(View view) { super(view); rootView = view; iv = (ImageView) view.findViewById(R.id.iv_xiantu_icon); tv_name = (TextView) view.findViewById(R.id.tv_xiandu_name); tv_info = (TextView) view.findViewById(R.id.tv_xiandu_info); } } }