注:获取完网络数据后直接进入适配器中进行条目展示
适配器类(MAdapter):
package com.example.monizhoukao3;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import java.util.List;
/**
* Created by DELL on 2018/5/26.
*/
public class MAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private Context context;
private List<News.DataBeanX.DataBean> list;
private int rv_type = 0;
private int rv_type_img = 1;
public MAdapter(Context context, List<News.DataBeanX.DataBean> list) {
this.context = context;
this.list = list;
}
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.build();
@Override
public int getItemViewType(int position) {
if (list.get(position).getPics().size() == 1) {
return rv_type;
} else {
return rv_type_img;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == rv_type) {
View view = View.inflate(context, R.layout.rv_item01, null);
ViewHolder01 viewHolder01 = new ViewHolder01(view);
return viewHolder01;
} else {
View view = View.inflate(context, R.layout.rv_item02, null);
ViewHolder02 viewHolder02 = new ViewHolder02(view);
return viewHolder02;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
int type = getItemViewType(position);
if (type == rv_type) {
final ViewHolder01 holder01 = (ViewHolder01) holder;
String title = list.get(position).getTitle();
int views = list.get(position).getViews();
holder01.tv_title.setText(title);
holder01.views.setText(views + "条评论");
ImageLoader.getInstance().displayImage("http://365jia.cn/uploads/"+list.get(position).getPics().get(0),holder01.img,options);
holder01.img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ObjectAnimator alpha = ObjectAnimator.ofFloat(holder01.img, "alpha", new float[]{0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f});
alpha.setDuration(2000);
alpha.setRepeatMode(ObjectAnimator.RESTART);
alpha.setRepeatCount(0);
alpha.start();
}
});
holder01.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mOnItemLongClickListener != null){
//mOnItemLongClickListener.OnItemLongClick();
}
}
});
}
else{
final ViewHolder02 holder02 = (ViewHolder02) holder;
String title = list.get(position).getTitle();
int views = list.get(position).getViews();
holder02.title.setText(title);
ImageLoader.getInstance().displayImage("http://365jia.cn/uploads/"+list.get(position).getPics().get(0), holder02.imageView,options);
ImageLoader.getInstance().displayImage("http://365jia.cn/uploads/"+list.get(position).getPics().get(1),holder02.imageView2,options);
ImageLoader.getInstance().displayImage("http://365jia.cn/uploads/"+list.get(position).getPics().get(2),holder02.imageView3,options);
holder02.pinglun.setText(views+"条评论");
holder02.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ObjectAnimator alpha = ObjectAnimator.ofFloat(holder02.imageView, "alpha", new float[]{0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f});
alpha.setDuration(2000);
alpha.setRepeatMode(ObjectAnimator.RESTART);
alpha.setRepeatCount(0);
alpha.start();
}
});
holder02.imageView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ObjectAnimator alpha = ObjectAnimator.ofFloat(holder02.imageView2, "alpha", new float[]{0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f});
alpha.setDuration(2000);
alpha.setRepeatMode(ObjectAnimator.RESTART);
alpha.setRepeatCount(0);
alpha.start();
}
});
holder02.imageView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ObjectAnimator alpha = ObjectAnimator.ofFloat(holder02.imageView3, "alpha", new float[]{0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f});
alpha.setDuration(2000);
alpha.setRepeatMode(ObjectAnimator.RESTART);
alpha.setRepeatCount(0);
alpha.start();
}
});
}
}
@Override
public int getItemCount() {
if (list != null) {
return list.size();
}
return 0;
}
public class ViewHolder01 extends RecyclerView.ViewHolder {
private final TextView tv_title;
private final ImageView img;
private final TextView views;
public ViewHolder01(View itemView) {
super(itemView);
tv_title = itemView.findViewById(R.id.tv_title);
img = itemView.findViewById(R.id.img);
views = itemView.findViewById(R.id.views);
}
}
public class ViewHolder02 extends RecyclerView.ViewHolder {
private final TextView title;
private final ImageView imageView;
private final ImageView imageView2;
private final ImageView imageView3;
private final TextView pinglun;
public ViewHolder02(View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
imageView = itemView.findViewById(R.id.imageView);
imageView2 = itemView.findViewById(R.id.imageView2);
imageView3 = itemView.findViewById(R.id.imageView3);
pinglun = itemView.findViewById(R.id.pinglun);
}
}
//定义接口
public interface OnItemClickListener{
//定义回调方法
void OnItemClick(View view, String data);
}
public interface OnItemLongClickListener{
//定义回调方法
void OnItemLongClick(View view, String data);
}
//定义接口对象
private OnItemClickListener mOnItemClickListener;
private OnItemLongClickListener mOnItemLongClickListener;
//暴露一个方法,将外界的对象传进来
public void setOnItemClickListener(OnItemClickListener onItemClickListener){
mOnItemClickListener = onItemClickListener;
}
public void setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener){
mOnItemLongClickListener = onItemLongClickListener;
}
}