package com.hanju.video.app.ui.video;
|
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.graphics.Canvas;
|
import android.graphics.Rect;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.lcjian.library.util.common.DimenUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.hanju.video.app.R;
|
import com.hanju.video.app.entity.VideoInfo;
|
import com.hanju.video.app.entity.ad.ExpressAdContainer;
|
import com.hanju.video.app.entity.video.VideoContent;
|
import com.hanju.video.app.entity.video.holder.VideoHolder;
|
import com.hanju.video.app.ui.media.VideoDetailActivity;
|
import com.hanju.video.app.util.ad.ExpressAdManager;
|
|
import java.text.DecimalFormat;
|
import java.util.List;
|
|
import androidx.annotation.NonNull;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
|
/**
|
* 一列视频样式
|
*/
|
public class VideoAlbumAdapter extends RecyclerView.Adapter {
|
|
private List<VideoInfo> contentList;
|
|
private Activity mContext;
|
|
private LayoutInflater inflater;
|
|
|
RecyclerView.ItemDecoration itemDecorationRow = new RecyclerView.ItemDecoration() {
|
@Override
|
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
|
super.onDraw(c, parent, state);
|
}
|
|
@Override
|
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
|
super.onDrawOver(c, parent, state);
|
}
|
|
@Override
|
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
super.getItemOffsets(outRect, view, parent, state);
|
int index = parent.getChildAdapterPosition(view);
|
int total = parent.getAdapter().getItemCount();
|
int minWidth = DimenUtils.dipToPixels(15, view.getContext());
|
if (index == total - 1) {
|
outRect.right = minWidth;
|
}
|
outRect.left = minWidth;
|
}
|
};
|
|
|
public void initRecyclerViewDisplayWidthRow1(RecyclerView rv) {
|
LinearLayoutManager layoutManager = new LinearLayoutManager(rv.getContext());
|
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
|
rv.setLayoutManager(layoutManager);
|
for (int i = 0; i < rv.getItemDecorationCount(); i++) {
|
rv.removeItemDecoration(rv.getItemDecorationAt(i));
|
i--;
|
}
|
int padding = 0;
|
padding += rv.getPaddingLeft();
|
padding += rv.getPaddingRight();
|
rv.addItemDecoration(itemDecorationRow);
|
}
|
|
|
public VideoAlbumAdapter(Activity context, List<VideoInfo> contentList) {
|
this.contentList = contentList;
|
mContext = context;
|
inflater = LayoutInflater.from(context);
|
}
|
|
@NonNull
|
@Override
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
if (viewType == VideoContent.TYPE_VIDEO) {
|
return new VideoAlbumHolder(inflater.inflate(R.layout.item_recommend_album, parent, false));
|
}
|
return null;
|
}
|
|
@Override
|
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
final VideoInfo videoInfo = contentList.get(position);
|
if (holder instanceof VideoAlbumHolder) {
|
VideoAlbumHolder viewHolder = (VideoAlbumHolder) holder;
|
try {
|
Glide.with(mContext).load(videoInfo.getPicture()).transition(withCrossFade()).placeholder(R.drawable.ic_default_cover).into(viewHolder.iv_poster);
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
viewHolder.tv_name.setText(videoInfo.getName() + "");
|
viewHolder.tv_tag.setText(StringUtils.isEmpty(videoInfo.getTag()) ? "" : videoInfo.getTag());
|
viewHolder.view.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
myClick(videoInfo, v);
|
}
|
});
|
|
}
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = contentList.size();
|
return count;
|
}
|
|
@Override
|
public int getItemViewType(int position) {
|
return VideoContent.TYPE_VIDEO;
|
}
|
|
|
private void myClick(VideoInfo info, final View v) {
|
Intent intent = new Intent(v.getContext(), VideoDetailActivity.class);
|
intent.putExtra("video_info", info);
|
v.getContext().startActivity(intent);
|
}
|
|
class VideoAlbumHolder extends RecyclerView.ViewHolder {
|
View view;
|
TextView tv_name;
|
LinearLayout ll_label;
|
TextView tv_tag;
|
LinearLayout ll_score;
|
ImageView iv_poster;
|
|
|
public VideoAlbumHolder(View view) {
|
super(view);
|
this.view = view;
|
tv_name = view.findViewById(R.id.tv_name);
|
ll_label = view.findViewById(R.id.ll_label);
|
tv_tag = view.findViewById(R.id.tv_tag);
|
ll_score = view.findViewById(R.id.ll_score);
|
iv_poster = view.findViewById(R.id.iv_poster);
|
}
|
}
|
|
|
}
|