From 405e8b2d2ad9a2d6d51cd65173b42c9fcde0ce4f Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 29 三月 2021 19:00:03 +0800 Subject: [PATCH] 白色背景修改 --- BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java | 315 +++++++++++++++++---------------------------------- 1 files changed, 107 insertions(+), 208 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java index d58b450..7d14f70 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/RecommendNewAdapter.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Intent; import android.support.v7.widget.RecyclerView; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.style.AbsoluteSizeSpan; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -22,8 +25,11 @@ import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.lcjian.library.util.common.DimenUtils; import com.lcjian.library.util.common.StringUtils; import com.lcjian.library.widget.RatioLayout; +import com.weikou.beibeivideo.BasicTextHttpResponseHandler; +import com.weikou.beibeivideo.BeibeiVideoAPI; import com.weikou.beibeivideo.R; import com.weikou.beibeivideo.entity.HomeType; import com.weikou.beibeivideo.entity.HomeVideo; @@ -43,6 +49,10 @@ import com.weikou.beibeivideo.util.VideoUtil; import com.weikou.beibeivideo.util.ad.AdUtil; import com.weikou.beibeivideo.util.ad.ExpressAdManager; +import com.weikou.beibeivideo.util.video.VideoUIUtil; + +import org.apache.http.Header; +import org.json.JSONArray; import java.text.DecimalFormat; import java.util.ArrayList; @@ -62,6 +72,10 @@ private TreeSet mADSet = new TreeSet(); public final int TYPE_HEADER = 10001; + + private Gson gson = new GsonBuilder().setVersion(1.0).setFieldNamingPolicy( + FieldNamingPolicy.UPPER_CAMEL_CASE) + .create(); private View headerView; @@ -171,6 +185,8 @@ homeType.setVideoInfoList(new ArrayList<>()); } + ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + holder.view.setLayoutParams(params); //鏄惁涓哄箍鍛� if (homeType.getAd() != null) { holder.fl_ad.setVisibility(View.VISIBLE); @@ -188,8 +204,8 @@ @Override public void onClick(View v) { - JumpActivityUtil.jumpPage(mContext,homeType.getAd().getJumpDetail(),homeType.getAd().getParams()!=null? JSONObject.parseObject(homeType.getAd().getParams().replace( - "\\" + "\"", "\"")):null); + JumpActivityUtil.jumpPage(mContext, homeType.getAd().getJumpDetail(), homeType.getAd().getParams() != null ? JSONObject.parseObject(homeType.getAd().getParams().replace( + "\\" + "\"", "\"")) : null); } }); @@ -237,14 +253,93 @@ } - Glide.with(mContext).load(homeType.getIcon()) - .apply(new RequestOptions().placeholder(R.drawable.ic_stars_collection)).into(holder.tv_category_icon); holder.tv_category_name.setText(homeType.getName()); + + + //鏇村 if (Boolean.parseBoolean(homeType.getHasMore())) { holder.tv_more.setVisibility(View.VISIBLE); + if (!StringUtils.isEmpty(homeType.getMoreTag())) { + holder.tv_more.setText(homeType.getMoreTag()); + } else { + holder.tv_more.setText("鏇村" + homeType.getName()); + } } else { holder.tv_more.setVisibility(View.GONE); } + + int refreshP = homeType.getRefreshPosition(); + //鍙充笂瑙掍笖鏈夋洿澶氶�夐」 + if (refreshP == 1 && Boolean.parseBoolean(homeType.getHasMore())) { + refreshP = 2;//绉诲姩鑷充笅鏂� + } + + //涓嶈冻涓�椤典笉鏄剧ず鍒锋柊 + if (homeType.getCount() <= homeType.getPageSize()) { + refreshP = 0; + } + + + switch (refreshP) { + case 0: + holder.tv_refresh.setVisibility(View.GONE); + holder.tv_tag_refresh.setVisibility(View.GONE); + break; + + case 1: + holder.tv_refresh.setVisibility(View.GONE); + holder.tv_tag_refresh.setVisibility(View.VISIBLE); + break; + + case 2: + holder.tv_refresh.setVisibility(View.VISIBLE); + holder.tv_tag_refresh.setVisibility(View.GONE); + break; + } + //鍒锋柊鐨勫姩浣� + View.OnClickListener refreshListener = new View.OnClickListener() { + + + @Override + public void onClick(View v) { + BeibeiVideoAPI.getHomeVideoList(mContext, homeType.getId(), homeType.getCurrentPage() + 1, new BasicTextHttpResponseHandler() { + @Override + public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception { + if (jsonObject.optBoolean("IsPost")) { + org.json.JSONObject data = jsonObject.optJSONObject("Data"); + int page = data.optInt("page"); + homeType.setCurrentPage(page); + //瑙f瀽鏁版嵁 + homeType.getHomeVideoList().clear(); + //瑙f瀽HomeVideo鏁版嵁 + int count = data.optInt("count"); + homeType.setCount(count); + + JSONArray homeArray = data + .optJSONArray("list"); + List<HomeVideo> homeList = new ArrayList<>(); + if (homeArray != null && homeArray.length() > 0) { + for (int j = 0; j < homeArray.length(); j++) { + homeList.add(gson.fromJson(homeArray + .optJSONObject(j).toString(), + HomeVideo.class)); + } + } + + homeType.getHomeVideoList().clear(); + homeType.getHomeVideoList().addAll(homeList); + //鏀瑰彉褰撳墠閫夐」 + notifyItemChanged(i); + } + } + }); + + + } + }; + holder.tv_refresh.setOnClickListener(refreshListener); + holder.tv_tag_refresh.setOnClickListener(refreshListener); + holder.tv_more .setOnClickListener(new OnClickListener() { @@ -329,11 +424,12 @@ FrameLayout fl_ad; RatioLayout rl_ad; TextView tv_category_name; - ImageView tv_category_icon; ImageView iv_ad; TextView tv_more; RecyclerView rv_content; RelativeLayout rl_title_item; + TextView tv_refresh; + TextView tv_tag_refresh; View view; public HomeTypeHolder(View convertView, RecyclerView.RecycledViewPool recycledViewPool) { @@ -357,12 +453,16 @@ tv_category_name = convertView .findViewById(R.id.tv_category_name); - tv_category_icon = convertView - .findViewById(R.id.tv_category_icon); tv_more = convertView .findViewById(R.id.tv_more); rv_content = convertView .findViewById(R.id.rv_content); + + tv_refresh = convertView + .findViewById(R.id.tv_refresh); + + tv_tag_refresh = convertView + .findViewById(R.id.tv_tag_refresh); if (recycledViewPool != null) @@ -382,207 +482,6 @@ ll_container = view.findViewById(R.id.ll_container); fl_ad = view.findViewById(R.id.fl_ad); rl_title_item = view.findViewById(R.id.rl_title_item); - } - - } - - - public class HomeTypeContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { - private Activity mContext; - private List<HomeTypeContent> contentList; - private int maxItemNum; - - private ExpressAdManager expressAdManager; - - private boolean needAd; - - - public HomeTypeContentAdapter(final Activity context, List<HomeVideo> videoList, boolean needAd, int maxItemNum) { - this.needAd = needAd; - this.mContext = context; - if (contentList == null) - this.contentList = new ArrayList<>(); - this.contentList.clear(); - for (HomeVideo hv : videoList) { - this.contentList.add(new HomeTypeContent(HomeTypeContent.TYPE_CONTENT, hv)); - } - - - if (needAd) { - if (expressAdManager == null) - expressAdManager = new ExpressAdManager(AdUtil.getSmallExpressAdType(), mContext); - expressAdManager.loadRecommendSmallAd(new ExpressAdManager.IAdLoadListener() { - @Override - public void onSuccess(List<ExpressAdContainer> adList) { - if (adList != null && adList.size() > 0) { - if (contentList != null && contentList.size() > 0 && contentList.get(0).getType() == HomeTypeContent.TYPE_CONTENT) { - contentList.add(0, new HomeTypeContent(HomeTypeContent.TYPE_AD, adList.get(0))); - notifyDataSetChanged(); - } - } - } - }); - } - - - this.maxItemNum = maxItemNum; - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int type) { - switch (type) { - case HomeTypeContent.TYPE_AD: - return new RecommendVideoAdHolder(inflater.inflate(R.layout.item_ad_list_small, parent, false)); - case HomeTypeContent.TYPE_CONTENT: - return new VideoHolder(inflater.inflate(R.layout.item_movie, parent, false)); - } - return null; - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int p) { - final HomeTypeContent content = contentList.get(p); - if (viewHolder instanceof VideoHolder) { - VideoHolder holder = (VideoHolder) viewHolder; - final HomeVideo info = content.getHomeVideo(); - //璁剧疆鍐呭 - holder.ll_video_show.setVisibility(View.VISIBLE); - if (StringUtils.isEmpty(info.getPicture())) { - Glide.with(mContext).load(info.getVideo().getPicture()) - .apply(new RequestOptions().centerCrop().placeholder(R.drawable.ic_default_cover).error(R.drawable.ic_default_cover)) - .into(holder.iv_movie_cover); - } else { - try { - Glide.with(mContext).load(info.getPicture()) - .apply(new RequestOptions().centerCrop().placeholder(R.drawable.ic_default_cover).error(R.drawable.ic_default_cover)) - .into(holder.iv_movie_cover); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - } - holder.tv_movie_title.setText(info.getVideo().getName()); - - String tag = StringUtils.isBlank(info - .getVideo().getTag()) ? "" : info.getVideo() - .getTag(); - holder.tv_movie_rating.setText(tag); - if (StringUtils.isBlank(tag)) { - holder.tv_movie_rating.setVisibility(View.GONE); - } else { - holder.tv_movie_rating.setVisibility(View.VISIBLE); - } - - //vip鏍囪瘑 - if (info.getVideo() != null && info.getVideo().getFree() == 1) { - holder.iv_vip.setVisibility(View.VISIBLE); - } else { - holder.iv_vip.setVisibility(View.GONE); - } - - - DecimalFormat df = new DecimalFormat("###.0"); - holder.tv_movie_play_num.setText(VideoUtil.getWatchCountShortName(info.getVideo().getWatchCount())); - holder.tv_movie_play_num.setVisibility(View.GONE); - holder.tv_movie_comment_num.setText(StringUtils.isBlank(info.getVideo().getCommentCount()) ? "0" : info.getVideo().getCommentCount()); - holder.ll_video_show - .setOnClickListener(new OnClickListener() { - @Override - public void onClick(final View v) { - //璺宠浆鍒板晢鍝佽棰戞挱鏀鹃〉 - myClick(info.getVideo(), v); - } - }); - } else if (viewHolder instanceof RecommendVideoAdHolder) {//骞垮憡 - final RecommendVideoAdHolder holder = (RecommendVideoAdHolder) viewHolder; - holder.fl_container.removeAllViews(); - - final ExpressAdContainer ad = content.getAd(); - if (ad == null) {//骞垮憡涓虹┖ - holder.view.setVisibility(View.GONE); - } else { - holder.view.setVisibility(View.VISIBLE); - if (ad.getGdt() != null) { - holder.rl_container.setRatio(0.88f); - holder.tv_movie_title.setVisibility(View.GONE); -// ad.getGdt().setAdEventListener(new AdEventListener() { -// @Override -// public void onClick() { -// -// } -// -// @Override -// public void onExposed() { -// -// } -// -// @Override -// public void onRenderSuccess() { -// holder.fl_container.addView(ad.getGdt().getAdView()); -// } -// -// @Override -// public void onRenderFail() { -// -// } -// -// @Override -// public void onAdClosed() { -// ad.getGdt().destroy(); -// contentList.remove(content); -// notifyDataSetChanged(); -// } -// }); - ad.getGdt().render(); - holder.fl_container.addView(ad.getGdt()); - holder.tv_movie_play_num.setText("112"); - } else if (ad.getCsj() != null) { - holder.rl_container.setRatio(0.88f); - holder.tv_movie_title.setVisibility(View.GONE); - ad.getCsj().setDislikeCallback(mContext, new TTAdDislike.DislikeInteractionCallback() { - - @Override - public void onSelected(int i, String s) { - contentList.remove(content); - notifyDataSetChanged(); - } - - @Override - public void onCancel() { - - } - - @Override - public void onRefuse() { - - } - }); - ad.getCsj().render(); - holder.fl_container.addView(ad.getCsj().getExpressAdView()); - } - } - } - } - - @Override - public int getItemCount() { - int count = contentList.size(); - if (count > maxItemNum) - return maxItemNum; - else - return count % 2 == 0 ? count : count - 1; - } - - @Override - public int getItemViewType(int position) { - return this.contentList.get(position).getType(); - } - - - private void myClick(VideoInfo info, final View v) { - Intent intent = new Intent(v.getContext(), VideoDetailActivity2.class); - intent.putExtra("video_info", info); - intent.putExtra("from", "recommend"); - v.getContext().startActivity(intent); } } -- Gitblit v1.8.0