package com.atguigu.beijingnews.adapter;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.atguigu.baselibrary.BitmapCacheUtils;
import com.atguigu.baselibrary.Constants;
import com.atguigu.baselibrary.NetCacheUtils;
import com.atguigu.beijingnews.R;
import com.atguigu.beijingnews.activity.PicassoSampleActivity;
import com.atguigu.beijingnews.bean.PhotosMenuDetailPagerBean;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
/**
* 作者:尚硅谷-杨光福 on 2017/2/9 11:42
* 微信:yangguangfu520
* QQ号:541433511
* 作用:xxxx
*/
public class PhotosMenuDetailPagerAdapter extends RecyclerView.Adapter<PhotosMenuDetailPagerAdapter.ViewHolder> {
private final RecyclerView recyclerview;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case NetCacheUtils.SECUSS://图片请求成功
//位置
int position = msg.arg1;
Bitmap bitmap = (Bitmap) msg.obj;
if(recyclerview.isShown()){
ImageView ivIcon = (ImageView) recyclerview.findViewWithTag(position);
if(ivIcon != null&& bitmap != null){
Log.e("TAG","网络缓存图片显示成功"+position);
ivIcon.setImageBitmap(bitmap);
}
}
break;
case NetCacheUtils.FAIL://图片请求失败
position = msg.arg1;
Log.e("TAG","网络缓存失败"+position);
break;
}
}
};
private Context mContext;
private List<PhotosMenuDetailPagerBean.DataEntity.NewsEntity> datas;
private BitmapCacheUtils bitmapCacheUtils;
private DisplayImageOptions options;
public PhotosMenuDetailPagerAdapter(Context mContext, List<PhotosMenuDetailPagerBean.DataEntity.NewsEntity> news, RecyclerView recyclerview) {
this.mContext = mContext;
this.datas = news;
this.recyclerview = recyclerview;
bitmapCacheUtils = new BitmapCacheUtils(handler);
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.news_pic_default)
.showImageForEmptyUri(R.drawable.news_pic_default)
.showImageOnFail(R.drawable.news_pic_default)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565)
//设置矩形圆角图片
.displayer(new RoundedBitmapDisplayer(10))
.build();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(View.inflate(mContext, R.layout.item_photosmenu_detail_pager, null));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
//1.根据位置得到数据
PhotosMenuDetailPagerBean.DataEntity.NewsEntity newsEntity = datas.get(position);
holder.tvTitle.setText(newsEntity.getTitle());
//设置图片
//Glide加载图片-----------------
// Glide.with(mContext).load(Constants.BASE_URL+newsEntity.getListimage())
// .diskCacheStrategy(DiskCacheStrategy.ALL)
// .transform(new CornersTransform(mContext,15))
// .placeholder(R.drawable.news_pic_default)
// .error(R.drawable.news_pic_default)
// .into(holder.ivIcon);
//https://github.com/wasabeef/glide-transformations
// Glide.with(mContext).load(Constants.BASE_URL+newsEntity.getListimage())
// .bitmapTransform(new RoundedCornersTransformation(mContext,20,0))
// .into(holder.ivIcon);
//自定义图片三级缓存---------------
//设置标识
// holder.ivIcon.setTag(position);
// Bitmap bitmap = bitmapCacheUtils.getBitmapFromNet(Constants.BASE_URL+newsEntity.getListimage(),position);
// if(bitmap != null){//内存或者本地
// Log.e("TAG","我是本地得到的哦=="+bitmap);
// holder.ivIcon.setImageBitmap(bitmap);
// }
//ImagerLoader加载图片-----------
ImageLoader.getInstance().displayImage(Constants.BASE_URL+newsEntity.getListimage(), holder.ivIcon, options);
}
@Override
public int getItemCount() {
return datas.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
@InjectView(R.id.iv_icon)
ImageView ivIcon;
@InjectView(R.id.tv_title)
TextView tvTitle;
ViewHolder(View view) {
super(view);
ButterKnife.inject(this, view);
//设置点击事件
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, PicassoSampleActivity.class);
intent.putExtra("url",Constants.BASE_URL+datas.get(getLayoutPosition()).getListimage());
mContext.startActivity(intent);
}
});
}
}
}