package com.lauren.simplenews.images; import android.content.Context; 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.LinearLayout; import android.widget.TextView; import com.lauren.simplenews.R; import com.lauren.simplenews.beans.ImageBean; import com.lauren.simplenews.utils.ImageLoaderUtils; import com.lauren.simplenews.utils.ToolsUtil; import java.util.List; /** * Description : * Author : lauren * Email : lauren.liuling@gmail.com * Blog : http://www.liuling123.com * Date : 15/12/19 */ public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ItemViewHolder> { private List<ImageBean> mData; private Context mContext; private int mMaxWidth; private int mMaxHeight; private OnItemClickListener mOnItemClickListener; public ImageAdapter(Context context) { this.mContext = context; mMaxWidth = ToolsUtil.getWidthInPx(mContext) - 20; mMaxHeight = ToolsUtil.getHeightInPx(mContext) - ToolsUtil.getStatusHeight(mContext) - ToolsUtil.dip2px(mContext, 96); } public void setmDate(List<ImageBean> data) { this.mData = data; this.notifyDataSetChanged(); } @Override public ImageAdapter.ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_image, parent, false); ItemViewHolder vh = new ItemViewHolder(v); return vh; } @Override public void onBindViewHolder(ImageAdapter.ItemViewHolder holder, int position) { ImageBean imageBean = mData.get(position); if(imageBean == null) { return; } holder.mTitle.setText(imageBean.getTitle()); float scale = (float)imageBean.getWidth() / (float) mMaxWidth; int height = (int)(imageBean.getHeight() / scale); if(height > mMaxHeight) { height = mMaxHeight; } holder.mImage.setLayoutParams(new LinearLayout.LayoutParams(mMaxWidth, height)); ImageLoaderUtils.display(mContext, holder.mImage, imageBean.getThumburl()); } @Override public int getItemCount() { if(mData == null) { return 0; } return mData.size(); } public ImageBean getItem(int position) { return mData == null ? null : mData.get(position); } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.mOnItemClickListener = onItemClickListener; } public interface OnItemClickListener { void onItemClick(View view, int position); } public class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { public TextView mTitle; public ImageView mImage; public ItemViewHolder(View v) { super(v); mTitle = (TextView) v.findViewById(R.id.tvTitle); mImage = (ImageView) v.findViewById(R.id.ivImage); v.setOnClickListener(this); } @Override public void onClick(View view) { if(mOnItemClickListener != null) { mOnItemClickListener.onItemClick(view, this.getPosition()); } } } }