package ren.solid.materialdesigndemo.adapter; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.DecelerateInterpolator; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import ren.solid.library.http.HttpClientManager; import ren.solid.library.http.HttpHelper; import ren.solid.library.http.ImageLoader; import ren.solid.library.http.request.ImageRequest; import ren.solid.materialdesigndemo.R; import ren.solid.materialdesigndemo.activity.BookDetailActivity; import ren.solid.materialdesigndemo.bean.BookBean; import ren.solid.library.utils.HttpUtils; import ren.solid.library.utils.ViewUtils; /** * Created by _SOLID * Date:2016/3/30 * Time:16:41 * <p> * 最原始的Adapter写法,本项目已经没有用了 */ public class OriginalBookAdapter extends RecyclerView.Adapter<OriginalBookAdapter.BookViewHolder> { private List<BookBean> mBookBeans; private Context mContext; private boolean animateItems = true; private int lastAnimatedPosition = -1; public OriginalBookAdapter(Context context, List<BookBean> bookBeanList) { this.mContext = context; this.mBookBeans = bookBeanList; } @Override public BookViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater inflater = LayoutInflater.from(mContext); View view = inflater.inflate(R.layout.item_book, parent, false); BookViewHolder holder = new BookViewHolder(view); return holder; } @Override public void onBindViewHolder(BookViewHolder holder, int position) { runEnterAnimation(holder.itemView, position); BookBean bookBean = mBookBeans.get(position); holder.tv_title.setText(bookBean.getTitle()); holder.tv_price.setText("¥" + bookBean.getPrice()); holder.tv_author.setText("作者:" + bookBean.getAuthor() + ""); holder.tv_date.setText("出版日期:" + bookBean.getPubdate()); holder.tv_publisher.setText("出版社:" + bookBean.getPublisher()); holder.tv_num_rating.setText(bookBean.getRating().getNumRaters() + "人评分"); HttpClientManager.displayImage(holder.iv_image, bookBean.getImage()); } @Override public int getItemCount() { return mBookBeans.size(); } public void add(BookBean bean) { mBookBeans.add(bean); notifyDataSetChanged(); } public void addAll(List<BookBean> beans) { mBookBeans.addAll(beans); notifyDataSetChanged(); } public void clear() { mBookBeans.clear(); notifyDataSetChanged(); } /*** * item的加载动画 * * @param view * @param position */ private void runEnterAnimation(View view, int position) { if (!animateItems) { return; } if (position > lastAnimatedPosition) { lastAnimatedPosition = position; view.setTranslationY(ViewUtils.getScreenHeight(mContext)); view.animate() .translationY(50) .setStartDelay(100) .setInterpolator(new DecelerateInterpolator(3.f)) .setDuration(300) .start(); } } public class BookViewHolder extends RecyclerView.ViewHolder { public ImageView iv_image; public TextView tv_title; public TextView tv_price; public TextView tv_author; public TextView tv_date; public TextView tv_publisher; public TextView tv_num_rating; public BookViewHolder(View itemView) { super(itemView); iv_image = (ImageView) itemView.findViewById(R.id.iv_image); tv_title = (TextView) itemView.findViewById(R.id.tv_title); tv_price = (TextView) itemView.findViewById(R.id.tv_price); tv_author = (TextView) itemView.findViewById(R.id.tv_author); tv_date = (TextView) itemView.findViewById(R.id.tv_date); tv_publisher = (TextView) itemView.findViewById(R.id.tv_publisher); tv_num_rating = (TextView) itemView.findViewById(R.id.tv_num_rating); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mContext, BookDetailActivity.class); intent.putExtra("url", mBookBeans.get(getAdapterPosition() - 1).getUrl()); mContext.startActivity(intent); } }); } } }