ModelViewG.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.edufound.reader.cusview;
  2. import android.content.Context;
  3. import android.graphics.drawable.GradientDrawable;
  4. import android.text.TextUtils;
  5. import android.util.AttributeSet;
  6. import android.view.Gravity;
  7. import android.view.LayoutInflater;
  8. import android.view.ViewGroup;
  9. import android.widget.FrameLayout;
  10. import android.widget.ImageView;
  11. import android.widget.LinearLayout;
  12. import android.widget.TextView;
  13. import androidx.annotation.NonNull;
  14. import androidx.annotation.Nullable;
  15. import androidx.constraintlayout.widget.ConstraintLayout;
  16. import com.edufound.reader.R;
  17. import com.edufound.reader.bean.ModelBean;
  18. import com.edufound.reader.util.EfunboxUtil;
  19. import com.edufound.reader.util.GlideUtils;
  20. import com.edufound.reader.util.SizeUtils;
  21. import com.jakewharton.rxbinding4.view.RxView;
  22. import java.util.concurrent.TimeUnit;
  23. public class ModelViewG extends FrameLayout {
  24. Context mContext;
  25. LayoutInflater mLayoutInflater;
  26. LinearLayout mItemLayout;
  27. ImageView mBackgroundImg;
  28. FrameLayout mRuleBtn;
  29. public ModelViewG(@NonNull Context context) {
  30. super(context);
  31. mContext = context;
  32. mLayoutInflater = LayoutInflater.from(mContext);
  33. }
  34. public ModelViewG(@NonNull Context context, @Nullable AttributeSet attrs) {
  35. super(context, attrs);
  36. }
  37. public ModelViewG(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
  38. super(context, attrs, defStyleAttr);
  39. }
  40. public void initView() {
  41. EfunboxUtil.initDesignSize(mContext);
  42. FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(SizeUtils.dp2px(mContext, 428)
  43. , SizeUtils.dp2px(mContext, 598));
  44. this.setLayoutParams(layoutParams);
  45. layoutParams.gravity = Gravity.CENTER;
  46. FrameLayout modelViewF = (FrameLayout) mLayoutInflater.inflate(R.layout.cusview_model_view_g, null);
  47. mBackgroundImg = modelViewF.findViewById(R.id.cusview_model_view_g_background);
  48. mRuleBtn = modelViewF.findViewById(R.id.cusview_model_view_g_rule);
  49. mItemLayout = modelViewF.findViewById(R.id.cusview_model_view_g_item_layout);
  50. GradientDrawable drawable = new GradientDrawable();
  51. drawable.setSize(1, SizeUtils.dp2px(mContext, 46));
  52. mItemLayout.setDividerDrawable(drawable);
  53. mItemLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
  54. this.addView(modelViewF);
  55. }
  56. public void setView(String bgurl, ModelBean bean, ModelViewF.ModelViewFOnItemClick listener) {
  57. mItemLayout.removeAllViews();
  58. if (!TextUtils.isEmpty(bgurl)) {
  59. GlideUtils.loadImageSizeKipMemoryCache(mContext, bgurl, mBackgroundImg);
  60. } else {
  61. GlideUtils.loadImageSizeKipMemoryCache(mContext, R.drawable.test_view_f_bg, mBackgroundImg);
  62. }
  63. RxView.clicks(mRuleBtn).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
  64. listener.clickRule(bean);
  65. });
  66. LinearLayout.LayoutParams itemParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1);
  67. for (int i = 0; i < bean.getReadUserList().size(); i++) {
  68. ConstraintLayout item = (ConstraintLayout) mLayoutInflater.inflate(R.layout.adapter_item_cusview_model_view_g, null);
  69. ImageView icon = item.findViewById(R.id.cusview_model_view_g_layout_item_icon);
  70. GlideUtils.loadRoundCircleImage(mContext, bean.getReadUserList().get(i).getExample().getShareImg(), icon, SizeUtils.dp2px(mContext, 10));
  71. TextView name = item.findViewById(R.id.cusview_model_view_g_layout_item_name);
  72. name.setText(bean.getReadUserList().get(i).getExample().getTitle());
  73. TextView enterNum = item.findViewById(R.id.cusview_model_view_g_layout_item_enter_num);
  74. enterNum.setText(bean.getReadUserList().get(i).getCount());
  75. FrameLayout openRankList = item.findViewById(R.id.cusview_model_view_g_layout_item_ranklist);
  76. item.setLayoutParams(itemParams);
  77. int finalI = i;
  78. RxView.clicks(item).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
  79. listener.clickItem(bean.getReadUserList().get(finalI));
  80. });
  81. RxView.clicks(openRankList).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
  82. listener.openRankList(bean.getReadUserList().get(finalI));
  83. });
  84. mItemLayout.addView(item);
  85. }
  86. }
  87. }