package com.dl7.mvp.adapter; import android.content.Context; import android.support.v4.app.Fragment; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.dl7.mvp.R; import com.dl7.mvp.local.table.BeautyPhotoInfo; import com.dl7.mvp.module.photo.bigphoto.BigPhotoActivity; import com.dl7.mvp.utils.DefIconFactory; import com.dl7.mvp.utils.ImageLoader; import com.dl7.mvp.utils.StringUtils; import com.dl7.recycler.adapter.BaseQuickAdapter; import com.dl7.recycler.adapter.BaseViewHolder; import java.util.ArrayList; import java.util.List; /** * Created by long on 2016/9/22. * 美图 Adapter */ public class BeautyPhotosAdapter extends BaseQuickAdapter<BeautyPhotoInfo> { // 图片的宽度 private int mPhotoWidth; private Fragment mFragment; public BeautyPhotosAdapter(Fragment fragment) { this(fragment.getContext()); mFragment = fragment; } public BeautyPhotosAdapter(Context context) { super(context); int widthPixels = context.getResources().getDisplayMetrics().widthPixels; int marginPixels = context.getResources().getDimensionPixelOffset(R.dimen.photo_margin_width); mPhotoWidth = widthPixels / 2 - marginPixels; } public BeautyPhotosAdapter(Context context, List<BeautyPhotoInfo> data) { super(context, data); } @Override protected int attachLayoutRes() { return R.layout.adapter_beauty_photos; } @Override protected void convert(final BaseViewHolder holder, final BeautyPhotoInfo item) { final ImageView ivPhoto = holder.getView(R.id.iv_photo); int photoHeight = StringUtils.calcPhotoHeight(item.getPixel(), mPhotoWidth); // 接口返回的数据有像素分辨率,根据这个来缩放图片大小 final ViewGroup.LayoutParams params = ivPhoto.getLayoutParams(); params.width = mPhotoWidth; params.height = photoHeight; ivPhoto.setLayoutParams(params); ImageLoader.loadFitCenter(mContext, item.getImgsrc(), ivPhoto, DefIconFactory.provideIcon()); holder.setText(R.id.tv_title, item.getTitle()); holder.getConvertView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mFragment != null) { BigPhotoActivity.launchForResult(mFragment, (ArrayList<BeautyPhotoInfo>) getData(), holder.getAdapterPosition()); } else { BigPhotoActivity.launch(mContext, (ArrayList<BeautyPhotoInfo>) getData(), holder.getAdapterPosition()); } } }); } }