package com.metis.coursepart.adapter.holder; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.metis.base.manager.DisplayManager; import com.metis.base.module.User; import com.metis.base.utils.Log; import com.metis.base.widget.adapter.holder.AbsViewHolder; import com.metis.coursepart.ActivityDispatcher; import com.metis.coursepart.R; import com.metis.coursepart.activity.GalleryItemDetailActivity; import com.metis.coursepart.adapter.GalleryAdapter; import com.metis.coursepart.module.GalleryItem; import com.metis.coursepart.adapter.delegate.GalleryItemDelegate; import com.metis.coursepart.module.KeyWord; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; import java.security.Key; import java.util.List; /** * Created by Beak on 2015/7/8. */ public class GalleryItemHolder extends AbsViewHolder<GalleryItemDelegate> { private static final String TAG = GalleryItemHolder.class.getSimpleName(); public ImageView thumbIv; public TextView tagTv, sourceTv, countTv; public GalleryItemHolder(View itemView) { super(itemView); thumbIv = (ImageView)itemView.findViewById(R.id.gallery_item_thumb); tagTv = (TextView)itemView.findViewById(R.id.gallery_item_tag); sourceTv = (TextView)itemView.findViewById(R.id.gallery_item_source); countTv = (TextView)itemView.findViewById(R.id.gallery_item_read_count); } @Override public void bindData(final Context context, final GalleryItemDelegate galleryItemDelegate, final RecyclerView.Adapter adapter, final int position) { final GalleryItem item = galleryItemDelegate.getSource(); KeyWord[] keyWordList = item.keyWordList; if (keyWordList != null/* && !keyWordList.isEmpty()*/) { final int length = keyWordList.length; StringBuilder builder = new StringBuilder(); for (int i = 0; i < length; i++) { KeyWord word = keyWordList[i]; if (word == null) { continue; } builder.append(word.keyWordName + " "); } tagTv.setText(builder); } else { tagTv.setText(""); } sourceTv.setText(item.source); /*final User user = item.studio; if (user != null) { sourceTv.setText(user.name); sourceTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { com.metis.base.ActivityDispatcher.userActivity(context, user.userId); } }); } else { sourceTv.setText(""); sourceTv.setOnClickListener(null); }*/ countTv.setText(context.getString(R.string.gallery_read_count, item.viewCount)); if (galleryItemDelegate.delegateWidth >= 0 && galleryItemDelegate.delegateHeight >= 0) { manageLayoutParams(context, galleryItemDelegate); } else { if (item.width > 0 && item.height > 0) { galleryItemDelegate.autoComputeByScreen(context, item.width, item.height); manageLayoutParams(context, galleryItemDelegate); } else { DisplayManager.getInstance(context).display( item.thumbnailUrl, thumbIv, DisplayManager.getInstance(context).getDefaultOptions(), new ImageLoadingListener() { @Override public void onLoadingStarted(String s, View view) { } @Override public void onLoadingFailed(String s, View view, FailReason failReason) { } @Override public void onLoadingComplete(String s, View view, Bitmap bitmap) { if (bitmap != null) { galleryItemDelegate.autoComputeByScreen(context, bitmap.getWidth(), bitmap.getHeight()); } else { } } @Override public void onLoadingCancelled(String s, View view) { } }); } } itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (adapter instanceof GalleryAdapter) { //com.metis.base.ActivityDispatcher.imagePreviewActivity(context, ((GalleryAdapter) adapter).getGalleryItemArray(), position); ActivityDispatcher.imageDetailActivity(context, ((GalleryAdapter) adapter).getGalleryItemArray(), position); } } }); } private void manageLayoutParams (Context context, GalleryItemDelegate galleryItemDelegate) { GalleryItem item = galleryItemDelegate.getSource(); RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)thumbIv.getLayoutParams(); if (params == null) { params = new RelativeLayout.LayoutParams(galleryItemDelegate.delegateWidth, galleryItemDelegate.delegateHeight); } else { params.width = galleryItemDelegate.delegateWidth; params.height = galleryItemDelegate.delegateHeight; } thumbIv.setLayoutParams(params); DisplayManager.getInstance(context).display(item.thumbnailUrl, thumbIv); } }