package com.wuxiaolong.wewin.ui.juzimi; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.view.ViewCompat; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.squareup.picasso.Picasso; import com.wuxiaolong.wewin.model.MainModel; import com.wuxiaolong.wewin.utils.AppConstants; import com.wuxiaolong.wewin.utils.AppUtils; import com.xiaomolongstudio.wewin.R; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by 吴小龙同學 * on 2015/11/22. */ public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> { private List<MainModel> mMainList = new ArrayList<>(); private Activity activity; private boolean hasTitle; public RecyclerViewAdapter(Activity activity, boolean hasTitle) { this.activity = activity; this.hasTitle = hasTitle; } public List<MainModel> getmMainList() { return mMainList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(parent.getContext(), R.layout.recycler_view_item, null); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { Picasso.with(activity) .load(mMainList.get(position).getIamgeUrl()) .placeholder(R.drawable.downloading) .error(R.drawable.downloading) .into(holder.imageView); if (hasTitle) { holder.title.setVisibility(View.VISIBLE); holder.title.setText(mMainList.get(position).getTitle()); } else { holder.title.setVisibility(View.GONE); } holder.imageView.setTag(mMainList.get(position).getIamgeUrl()); ViewCompat.setTransitionName(holder.imageView, mMainList.get(position).getIamgeUrl()); } @Override public int getItemCount() { return mMainList.size(); } public class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.imgView) ImageView imageView; @BindView(R.id.title) TextView title; public ViewHolder(final View itemView) { super(itemView); ButterKnife.bind(this, itemView); itemView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Bitmap bitmap = null; BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView.getDrawable(); if (bitmapDrawable != null) { bitmap = bitmapDrawable.getBitmap(); } Intent intent = new Intent(activity, ShowImageActivity.class); intent.putExtra("mainList", (Serializable) mMainList); intent.putExtra("position", getLayoutPosition()); intent.putExtra(AppConstants.COLOR, AppUtils.getPaletteColor(bitmap)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // Pair<View, String> pair1 = Pair.create((View) imageView, mMainList.get(getLayoutPosition()).getIamgeUrl()); // Pair<View, String> pair2 = Pair.create((View) title, mMainList.get(getLayoutPosition()).getTitle()); // Log.d("wxl", "title===" + mMainList.get(getLayoutPosition()).getTitle()); // ActivityOptionsCompat options; // options = ActivityOptionsCompat // .makeSceneTransitionAnimation(activity, pair1, pair2); ActivityOptionsCompat options = ActivityOptionsCompat .makeSceneTransitionAnimation(activity, itemView, mMainList.get(getLayoutPosition()).getIamgeUrl()); // ActivityOptionsCompat options = ActivityOptionsCompat // .makeSceneTransitionAnimation(activity, itemView, AppConstants.TRANSIT_PIC); ActivityCompat.startActivity(activity, intent, options.toBundle()); } else { activity.startActivity(intent); } } } ); } } }