123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package com.edufound.reader.cusview;
- import android.content.Context;
- import android.graphics.drawable.GradientDrawable;
- import android.text.TextUtils;
- import android.util.AttributeSet;
- import android.view.Gravity;
- import android.view.LayoutInflater;
- import android.view.ViewGroup;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.constraintlayout.widget.ConstraintLayout;
- import com.edufound.reader.R;
- import com.edufound.reader.bean.ModelBean;
- import com.edufound.reader.util.EfunboxUtil;
- import com.edufound.reader.util.GlideUtils;
- import com.edufound.reader.util.SizeUtils;
- import com.jakewharton.rxbinding4.view.RxView;
- import java.util.concurrent.TimeUnit;
- public class ModelViewG extends FrameLayout {
- Context mContext;
- LayoutInflater mLayoutInflater;
- LinearLayout mItemLayout;
- ImageView mBackgroundImg;
- FrameLayout mRuleBtn;
- public ModelViewG(@NonNull Context context) {
- super(context);
- mContext = context;
- mLayoutInflater = LayoutInflater.from(mContext);
- }
- public ModelViewG(@NonNull Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- }
- public ModelViewG(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
- public void initView() {
- EfunboxUtil.initDesignSize(mContext);
- FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(SizeUtils.dp2px(mContext, 428)
- , SizeUtils.dp2px(mContext, 598));
- this.setLayoutParams(layoutParams);
- layoutParams.gravity = Gravity.CENTER;
- FrameLayout modelViewF = (FrameLayout) mLayoutInflater.inflate(R.layout.cusview_model_view_g, null);
- mBackgroundImg = modelViewF.findViewById(R.id.cusview_model_view_g_background);
- mRuleBtn = modelViewF.findViewById(R.id.cusview_model_view_g_rule);
- mItemLayout = modelViewF.findViewById(R.id.cusview_model_view_g_item_layout);
- GradientDrawable drawable = new GradientDrawable();
- drawable.setSize(1, SizeUtils.dp2px(mContext, 46));
- mItemLayout.setDividerDrawable(drawable);
- mItemLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
- this.addView(modelViewF);
- }
- public void setView(String bgurl, ModelBean bean, ModelViewF.ModelViewFOnItemClick listener) {
- mItemLayout.removeAllViews();
- if (!TextUtils.isEmpty(bgurl)) {
- GlideUtils.loadImageSizeKipMemoryCache(mContext, bgurl, mBackgroundImg);
- } else {
- GlideUtils.loadImageSizeKipMemoryCache(mContext, R.drawable.test_view_f_bg, mBackgroundImg);
- }
- RxView.clicks(mRuleBtn).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
- listener.clickRule(bean);
- });
- LinearLayout.LayoutParams itemParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1);
- for (int i = 0; i < bean.getReadUserList().size(); i++) {
- ConstraintLayout item = (ConstraintLayout) mLayoutInflater.inflate(R.layout.adapter_item_cusview_model_view_g, null);
- ImageView icon = item.findViewById(R.id.cusview_model_view_g_layout_item_icon);
- GlideUtils.loadRoundCircleImage(mContext, bean.getReadUserList().get(i).getExample().getShareImg(), icon, SizeUtils.dp2px(mContext, 10));
- TextView name = item.findViewById(R.id.cusview_model_view_g_layout_item_name);
- name.setText(bean.getReadUserList().get(i).getExample().getTitle());
- TextView enterNum = item.findViewById(R.id.cusview_model_view_g_layout_item_enter_num);
- enterNum.setText(bean.getReadUserList().get(i).getCount());
- FrameLayout openRankList = item.findViewById(R.id.cusview_model_view_g_layout_item_ranklist);
- item.setLayoutParams(itemParams);
- int finalI = i;
- RxView.clicks(item).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
- listener.clickItem(bean.getReadUserList().get(finalI));
- });
- RxView.clicks(openRankList).throttleFirst(2, TimeUnit.SECONDS).subscribe(o -> {
- listener.openRankList(bean.getReadUserList().get(finalI));
- });
- mItemLayout.addView(item);
- }
- }
- }
|