admin
2021-05-15 2aead6275fdd1bbbd778abc0e85663a2578fab06
详情页完善
2个文件已删除
9个文件已修改
4个文件已添加
423 ■■■■ 已修改文件
app/src/main/java/com/tejia/lijin/app/entity/RedPacket.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/tejia/lijin/app/ui/goods/GoodsDetailHongBaoListAdapter.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/tejia/lijin/app/ui/subview/RadiusCardView.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/tejia/lijin/app/util/GlideRoundTransform.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/tejia/lijin/app/util/TopStatusSettings.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_fanli.9.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_fanli.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_hb.9.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_hb.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable-xhdpi/icon_rank_2.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_goods_detail_new.xml 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_goods_detail_hongbao.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_goods_detail_rights.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/attr.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/tejia/lijin/app/entity/RedPacket.java
@@ -24,6 +24,17 @@
    @Expose
    private String compositionInfo;//补贴信息
    @Expose
    private String hongBaoMoney;
    public String getHongBaoMoney() {
        return hongBaoMoney;
    }
    public void setHongBaoMoney(String hongBaoMoney) {
        this.hongBaoMoney = hongBaoMoney;
    }
    public String getCompositionInfo() {
        return compositionInfo;
    }
app/src/main/java/com/tejia/lijin/app/ui/goods/GoodsDetailHongBaoListAdapter.java
@@ -16,8 +16,11 @@
import android.widget.TextView;
import com.androidquery.AQuery;
import com.bumptech.glide.Glide;
import com.tejia.lijin.app.R;
import com.tejia.lijin.app.entity.goods.GoodsDetailInfo;
import com.tejia.lijin.app.entity.goods.GoodsDetailVO;
import com.tejia.lijin.app.util.GlideRoundTransform;
import com.wpc.library.util.common.DimenUtils;
import com.wpc.library.util.common.StringUtils;
@@ -28,10 +31,10 @@
public class GoodsDetailHongBaoListAdapter extends RecyclerView.Adapter {
    private Context mContext;
    private List<GoodsDetailInfo.HongBaoInfo> mList;
    private List<GoodsDetailVO.GoodsHongBaoListVO> mList;
    private boolean simpleMode;
    public GoodsDetailHongBaoListAdapter(Context context, List<GoodsDetailInfo.HongBaoInfo> list, boolean simpleMode) {
    public GoodsDetailHongBaoListAdapter(Context context, List<GoodsDetailVO.GoodsHongBaoListVO> list, boolean simpleMode) {
        this.mContext = context;
        this.mList = list;
        this.simpleMode = simpleMode;
@@ -40,36 +43,45 @@
    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_goods_detail_hongbao, null));
        return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_goods_detail_hongbao, parent, false));
    }
    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        GoodsDetailInfo.HongBaoInfo hongBaoInfo = mList.get(position);
        GoodsDetailVO.GoodsHongBaoListVO hongBaoInfo = mList.get(position);
        final ViewHolder viewHolder = (ViewHolder) holder;
        viewHolder.tv_more.setOnClickListener(new View.OnClickListener() {
        viewHolder.fl_more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (viewHolder.ll_hongbao_detail.getVisibility() == View.VISIBLE)
                    viewHolder.ll_hongbao_detail.setVisibility(View.GONE);
                else {
                    viewHolder.ll_hongbao_detail.setVisibility(View.VISIBLE);
                    viewHolder.tv_more.setVisibility(View.GONE);
                    viewHolder.fl_more.setVisibility(View.GONE);
                }
            }
        });
        boolean fanli = false;
        boolean fanli = hongBaoInfo.getType() == 4;
        //初始化View显示
        setShowMode(viewHolder, fanli, simpleMode);
        //设置红包详情
        setHongBaoDetailInfo(viewHolder, hongBaoInfo);
        //设置会员信息
        if (hongBaoInfo.getUserLevel() == null) {
            viewHolder.ll_level_info.setVisibility(View.GONE);
        } else {
            viewHolder.ll_level_info.setVisibility(View.VISIBLE);
            viewHolder.iv_level.setImageResource(R.drawable.icon_rank_2);
            viewHolder.tv_level_desc.setText(hongBaoInfo.getUserLevel().getDesc());
        }
        //设置资金
        SpannableString hbMoney = new SpannableString(hongBaoInfo.getHongBaoMoney());
        hbMoney.setSpan(new RelativeSizeSpan(1.5f), 1, (hongBaoInfo.getFinalMoney().indexOf(".") > -1 ? hongBaoInfo.getFinalMoney().indexOf(".") : hongBaoInfo.getFinalMoney().length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        SpannableString hbMoney = new SpannableString(hongBaoInfo.getSubMoney());
        hbMoney.setSpan(new RelativeSizeSpan(1.5f), 1, (hongBaoInfo.getSubMoney().indexOf(".") > -1 ? hongBaoInfo.getSubMoney().indexOf(".") : hongBaoInfo.getSubMoney().length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        viewHolder.tv_sub_money.setText(hbMoney);
        viewHolder.tv_sub_money.setCompoundDrawablePadding(DimenUtils.dip2px(mContext, 8));
        if (fanli) {
@@ -80,7 +92,7 @@
        SpannableString finalMoney = new SpannableString(hongBaoInfo.getFinalMoney());
        finalMoney.setSpan(new RelativeSizeSpan(1.77f), 1, (hongBaoInfo.getFinalMoney().indexOf(".") > -1 ? hongBaoInfo.getFinalMoney().indexOf(".") : hongBaoInfo.getFinalMoney().length()), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        viewHolder.tv_actual_money.setText(finalMoney);
        viewHolder.tv_final_money.setText(finalMoney);
        //简介
        if (StringUtils.isNullOrEmpty(hongBaoInfo.getDesc())) {
@@ -105,33 +117,33 @@
            viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_hongbao_bg);
            viewHolder.ll_hongbao_detail.setBackgroundResource(R.drawable.ic_goods_detail_hongbao_detail_fanli);
            moreBg.setColor(Color.parseColor("#35A30E"));
            viewHolder.tv_more.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.icon_goods_detail_hongbao_fanli_more, 0, 0);
            viewHolder.iv_more.setImageResource(R.drawable.icon_goods_detail_hongbao_fanli_more);
        } else {
            viewHolder.fl_main.setBackgroundResource(R.drawable.shape_goods_detail_hongbao_high_level_bg);
            viewHolder.ll_hongbao_detail.setBackgroundResource(R.drawable.ic_goods_detail_hongbao_detail_hb);
            moreBg.setColor(Color.parseColor("#EC1F3F"));
            viewHolder.tv_more.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.icon_goods_detail_hongbao_hb_more, 0, 0);
            viewHolder.iv_more.setImageResource(R.drawable.icon_goods_detail_hongbao_hb_more);
        }
        viewHolder.tv_more.setBackground(moreBg);
        viewHolder.fl_more.setBackground(moreBg);
        if (simple) {
            viewHolder.ll_level_info.setVisibility(View.GONE);
            viewHolder.tv_more.setVisibility(View.GONE);
            viewHolder.fl_more.setVisibility(View.GONE);
            viewHolder.tv_desc.setVisibility(View.GONE);
        } else {
            viewHolder.ll_level_info.setVisibility(View.VISIBLE);
            viewHolder.tv_more.setVisibility(View.VISIBLE);
            viewHolder.fl_more.setVisibility(View.VISIBLE);
            viewHolder.tv_desc.setVisibility(View.VISIBLE);
        }
    }
    private void setHongBaoDetailInfo(ViewHolder viewHolder, GoodsDetailInfo.HongBaoInfo hongBaoInfo) {
    private void setHongBaoDetailInfo(ViewHolder viewHolder, GoodsDetailVO.GoodsHongBaoListVO hongBaoInfo) {
        //隐藏超出的资金项目
        for (int i = hongBaoInfo.getPriceInfoList().size(); i < 4; i++) {
        for (int i = hongBaoInfo.getPriceDetails().size(); i < 4; i++) {
            int viewId = mContext.getResources().getIdentifier(
                    "ll_money_" + i,
@@ -141,7 +153,7 @@
                viewHolder.fl_main.findViewById(viewId).setVisibility(View.GONE);
        }
        for (int i = hongBaoInfo.getPriceInfoList().size() - 1; i < 3; i++) {
        for (int i = hongBaoInfo.getPriceDetails().size() - 1; i < 3; i++) {
            int viewId = mContext.getResources().getIdentifier(
                    "v_hongbao_cut_" + i,
                    "id",
@@ -150,17 +162,17 @@
                viewHolder.fl_main.findViewById(viewId).setVisibility(View.GONE);
        }
        for (int i = 0; i < hongBaoInfo.getPriceInfoList().size(); i++) {
            viewHolder.tv_money_names[i].setText(hongBaoInfo.getPriceInfoList().get(i).getPriceName());
            viewHolder.tv_moneys[i].setText(hongBaoInfo.getPriceInfoList().get(i).getMoney());
        for (int i = 0; i < hongBaoInfo.getPriceDetails().size(); i++) {
            viewHolder.tv_money_names[i].setText(hongBaoInfo.getPriceDetails().get(i).getName());
            viewHolder.tv_moneys[i].setText(hongBaoInfo.getPriceDetails().get(i).getMoney());
        }
        viewHolder.tv_actual_money.setText(hongBaoInfo.getFinalMoney());
    }
    @Override
    public int getItemCount() {
        return 0;
        return mList == null ? 0 : mList.size();
    }
    class ViewHolder extends RecyclerView.ViewHolder {
@@ -168,7 +180,8 @@
        TextView tv_sub_money;
        TextView tv_sub_money_desc;
        TextView tv_final_money;
        TextView tv_more;
        ImageView iv_more;
        FrameLayout fl_more;
        TextView tv_desc;
@@ -194,7 +207,9 @@
            tv_sub_money = itemView.findViewById(R.id.tv_sub_money);
            tv_sub_money_desc = itemView.findViewById(R.id.tv_sub_money_desc);
            tv_final_money = itemView.findViewById(R.id.tv_final_money);
            tv_more = itemView.findViewById(R.id.tv_more);
            iv_more = itemView.findViewById(R.id.iv_more);
            fl_more = itemView.findViewById(R.id.fl_more);
            tv_desc = itemView.findViewById(R.id.tv_desc);
            ll_hongbao_detail = itemView.findViewById(R.id.ll_hongbao_detail);
            ll_money_0 = itemView.findViewById(R.id.ll_money_0);
app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java
@@ -30,6 +30,7 @@
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -37,6 +38,7 @@
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
import com.tejia.lijin.app.R;
import com.tejia.lijin.app.ShoppingApi;
@@ -47,6 +49,7 @@
import com.tejia.lijin.app.entity.goods.GoodsDetailVO;
import com.tejia.lijin.app.ui.BaseActivity;
import com.tejia.lijin.app.ui.dialog.JumpTaoBaoDialog;
import com.tejia.lijin.app.ui.goods.GoodsDetailHongBaoListAdapter;
import com.tejia.lijin.app.ui.goods.GoodsDetailPreEventManager;
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
import com.tejia.lijin.app.ui.mine.LoginSelectActivity;
@@ -65,6 +68,7 @@
import com.tejia.lijin.app.util.user.UserUtil;
import com.wang.avi.AVLoadingIndicatorView;
import com.wpc.library.content.ConnectivityChangeHelper;
import com.wpc.library.recyclerviewhelper.DividerItemDecoration;
import com.wpc.library.util.NetUtils;
import com.wpc.library.util.common.DimenUtils;
import com.wpc.library.util.common.StringUtils;
@@ -78,6 +82,7 @@
import java.util.List;
import java.util.Timer;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
@@ -129,7 +134,7 @@
    private FlowLayout fl_rights_type;
    //价格信息/红包
    private LinearLayout ll_price;
    private RelativeLayout rl_price;
    private RecyclerView rv_price_info;
    //图文详情
@@ -241,7 +246,7 @@
        fl_rights_type = findViewById(R.id.fl_rights_type);
        //价格信息/红包
        ll_price = findViewById(R.id.ll_price);
        rl_price = findViewById(R.id.rl_price);
        rv_price_info = findViewById(R.id.rv_price_info);
        ll_fanli = findViewById(R.id.ll_fanli);
@@ -424,6 +429,9 @@
        tv_top_title4.setOnClickListener(this);
        ll_add_collect.setOnClickListener(this);
        fl_back_face.setOnClickListener(this);
        ll_fanli.setOnClickListener(this);
        ll_buy.setOnClickListener(this);
        if (getSharedPreferences("user", MODE_PRIVATE).getString("is_goods_web_detail", "0").equalsIgnoreCase("1")) {
            Intent intent = new Intent(GoodsDetailActivity.this, GoodsDetailBrowerActivity.class);
@@ -648,12 +656,9 @@
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                if (jsonObject.optString("code").equalsIgnoreCase("0")) {
                    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                    params.bottomMargin = DimenUtils.dip2px(GoodsDetailActivity.this, 50);
                    lv_goods_pic.setLayoutParams(params);
                    Gson gson = new GsonBuilder().serializeNulls().create();
                    mInfo = gson.fromJson(jsonObject.optJSONObject("data").toString(), GoodsDetailVO.class);
                    getGoodsRecommend(mInfo.getGoods().getGoodsId(), mInfo.getGoods().getGoodsType());
                    goodsDetailPreEventManager = new GoodsDetailPreEventManager(GoodsDetailActivity.this, mInfo);
                    couponUsers = mInfo.getExtra().getListCouponUser();
@@ -677,8 +682,10 @@
                        ll_notification.setAnimation(inAnima);
                        ll_notification.startAnimation(inAnima);
                    }
                    ImageUtil.showImageFace(GoodsDetailActivity.this, mInfo.getGoods().getTitle(), mInfo.getGoods().getShopType(), tv_name);
                    tv_name.setText(mInfo.getGoods().getTitle());
                    webView.loadUrl(mInfo.getExtra().getDetailUrl());
                    tv_sales_num.setText("月销 " + mInfo.getGoods().getSalesCount());
                    if (mInfo.getGoods().getShopInfo() != null) {
@@ -717,6 +724,12 @@
                    } else {
                        setCollectionData(false);
                    }
                    //权益设置
                    setRightsData(mInfo.getGoods().getRights());
                    //设置价格信息
                    setPriceInfo(mInfo.getGoods());
                    //发货地设置
                    if (!StringUtils.isBlank(mInfo.getGoods().getAddress())) {
@@ -849,8 +862,12 @@
                    Toast.makeText(GoodsDetailActivity.this, "请先登录板栗快省账号", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.fl_buy:
                //TODO 去购买
            case R.id.ll_buy:
                goBuy();
                break;
            case R.id.ll_fanli:
                goFanli();
                break;
            case R.id.fl_back_face:
@@ -1096,37 +1113,119 @@
    }
    private void setRightsData(boolean coupon, String money, String desc, String link) {
    private void setRightsData(List<GoodsDetailVO.GoodsRightsVO> rightsList) {
        if (rightsList == null || rightsList.size() == 0) {
            ll_rights_type.setVisibility(View.GONE);
        } else {
            ll_rights_type.setVisibility(View.VISIBLE);
        }
        fl_rights_type.removeAllViews();
        LayoutInflater inflater = LayoutInflater.from(this);
        for (GoodsDetailVO.GoodsRightsVO rights : rightsList) {
        View root = inflater.inflate(R.layout.item_goods_detail_rights, null);
            FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
            params.setMargins(0, DimenUtils.dip2px(getApplicationContext(), 8), DimenUtils.dip2px(getApplicationContext(), 10), 0);
//            root.setLayoutParams(params);
        AQuery query = new AQuery(root);
        GradientDrawable gd = new GradientDrawable();
        gd.setCornerRadius(DimenUtils.dip2px(getApplicationContext(), 10));
            gd.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
        TextView tv_money = query.id(R.id.tv_money).getTextView();
        TextView tv_desc = query.id(R.id.tv_desc).getTextView();
        if (coupon) {
            if (rights.getType() == 1) {
            gd.setColors(new int[]{Color.parseColor("#FFEF9A"), Color.parseColor("#FFFFFF")});
            tv_money.setTextColor(Color.parseColor("#FFB218"));
            tv_desc.setTextColor(Color.parseColor("#FFB218"));
                tv_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_rights_coupon, 0, 0, 0);
        } else {
            gd.setColors(new int[]{Color.parseColor("#FFE4E8"), Color.parseColor("#FFFFFF")});
            tv_money.setTextColor(Color.parseColor("#FF2B4B"));
            tv_desc.setTextColor(Color.parseColor("#FF2B4B"));
                if (rights.getType() == 2) {
                    tv_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_rights_lijin, 0, 0, 0);
                } else {
                    tv_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_rights_hb, 0, 0, 0);
                }
        }
        ((LinearLayout) query.id(R.id.ll_content).getView()).setBackground(gd);
        if (!StringUtils.isNullOrEmpty(link)) {
            tv_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            if (!StringUtils.isNullOrEmpty(rights.getDescLink())) {
                tv_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon_goods_detail_rights_lijin, 0);
                final String url = rights.getDescLink();
                tv_desc.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        startActivity(new Intent(getApplicationContext(), ShareBrowserActivity.class).putExtra("url", url));
                    }
                });
        }
        SpannableString moneyString = new SpannableString(money);
        moneyString.setSpan(new RelativeSizeSpan(1.5f), 1, (money.indexOf(".") > -1 ? money.indexOf(".") : money.length()), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            SpannableString moneyString = new SpannableString(rights.getMoney());
            moneyString.setSpan(new RelativeSizeSpan(1.5f), 1, (rights.getMoney().indexOf(".") > -1 ? rights.getMoney().indexOf(".") : rights.getMoney().length()), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        tv_money.setText(moneyString);
        tv_desc.setText(desc);
            tv_desc.setText(rights.getDesc());
            fl_rights_type.addView(root, params);
        }
    }
    private void setPriceInfo(GoodsDetailVO.GoodsInfoVO goodsInfoVO) {
        if (goodsInfoVO.getPriceList() == null || goodsInfoVO.getPriceList().size() == 0) {
            rl_price.setVisibility(View.GONE);
        } else {
            rl_price.setVisibility(View.VISIBLE);
        }
        rv_price_info.setLayoutManager(new LinearLayoutManager(rv_price_info.getContext()));
        rv_price_info.setNestedScrollingEnabled(false);
        DividerItemDecoration decoration = new DividerItemDecoration();
        decoration.setSize(DimenUtils.dip2px(getApplicationContext(), 5));
        rv_price_info.addItemDecoration(decoration);
        rv_price_info.setAdapter(new GoodsDetailHongBaoListAdapter(getApplicationContext(), goodsInfoVO.getPriceList(), false));
        tv_fanli_money_num.setText(goodsInfoVO.getMoneyInfo().getFanliMoney());
        tv_buy.setText(goodsInfoVO.getMoneyInfo().getHongBaoMoney());
    }
    private void getGoodsRecommend(String goodsId, int goodsType) {
        ShoppingApi.getGuessAndRecommend(this, goodsId, goodsType + "", new BasicTextHttpResponseHandler() {
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                if (jsonObject.optString("code").equalsIgnoreCase("0")) {
                    gList.clear();
                    Gson gson = new GsonBuilder().serializeNulls().create();
                    List<TaoBaoGoodsBrief> list1 = gson.fromJson(
                            jsonObject.optJSONObject("data").optJSONArray("listGuess").toString(),
                            new TypeToken<List<TaoBaoGoodsBrief>>() {
                            }.getType());
                    List<TaoBaoGoodsBrief> list2 = gson.fromJson(
                            jsonObject.optJSONObject("data").optJSONArray("listQuality").toString(),
                            new TypeToken<List<TaoBaoGoodsBrief>>() {
                            }.getType());
                    if (list1 != null && list1.size() > 0) {
                        gList.addAll(list1);
                        gAdapter.notifyDataSetChanged();
                    }
                    if (list2 != null && list2.size() > 0) {
                        gList.addAll(list2);
                        gAdapter.notifyDataSetChanged();
                    }
                    if (gList.size() == 0) {
                        findViewById(R.id.fl_top_title3).setVisibility(View.GONE);
                        ll_guess_like.setVisibility(View.GONE);
                    }
                    if (gList.size() == 0) {
                        findViewById(R.id.fl_top_title4).setVisibility(View.GONE);
                        findViewById(R.id.ll_relative_goods).setVisibility(View.GONE);
                    }
                }
            }
        });
    }
}
app/src/main/java/com/tejia/lijin/app/ui/subview/RadiusCardView.java
New file
@@ -0,0 +1,60 @@
package com.tejia.lijin.app.ui.subview;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Region;
import android.graphics.drawable.ColorDrawable;
import android.util.AttributeSet;
import com.tejia.lijin.app.R;
import androidx.cardview.widget.CardView;
public class RadiusCardView extends CardView {
    private float tlRadiu;
    private float trRadiu;
    private float brRadiu;
    private float blRadiu;
    public RadiusCardView(Context context) {
        this(context, null);
    }
    public RadiusCardView(Context context, AttributeSet attrs) {
        this(context, attrs, R.attr.materialCardViewStyle);
    }
    public RadiusCardView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        setRadius(0);
        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.RadiusCardView);
        tlRadiu = array.getDimension(R.styleable.RadiusCardView_rcv_topLeftRadiu, 0);
        trRadiu = array.getDimension(R.styleable.RadiusCardView_rcv_topRightRadiu, 0);
        brRadiu = array.getDimension(R.styleable.RadiusCardView_rcv_bottomRightRadiu, 0);
        blRadiu = array.getDimension(R.styleable.RadiusCardView_rcv_bottomLeftRadiu, 0);
        setBackground(new ColorDrawable());
    }
    @Override
    protected void onDraw(Canvas canvas) {
        Path path = new Path();
        RectF rectF = getRectF();
        float[] readius = {tlRadiu, tlRadiu, trRadiu, trRadiu, brRadiu, brRadiu, blRadiu, blRadiu};
        path.addRoundRect(rectF, readius, Path.Direction.CW);
        canvas.clipPath(path, Region.Op.INTERSECT);
        super.onDraw(canvas);
    }
    private RectF getRectF() {
        Rect rect = new Rect();
        getDrawingRect(rect);
        RectF rectF = new RectF(rect);
        return rectF;
    }
}
app/src/main/java/com/tejia/lijin/app/util/GlideRoundTransform.java
@@ -41,6 +41,7 @@
        }
    }
    public GlideRoundTransform(Context context, int dp) {
        this.radius = Resources.getSystem().getDisplayMetrics().density * dp;
        try {
@@ -77,7 +78,9 @@
                BitmapShader.TileMode.CLAMP));
        paint.setAntiAlias(true);
        RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
        canvas.drawRoundRect(rectF, radius, radius, paint);
        return result;
    }
app/src/main/java/com/tejia/lijin/app/util/TopStatusSettings.java
@@ -6,6 +6,7 @@
import android.os.Environment;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
@@ -169,8 +170,13 @@
            }
            //设置状态栏文字颜色及图标为深色
            mActivity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, result);
            mActivity.findViewById(R.id.v_status_bar).setLayoutParams(params);
            ViewGroup.LayoutParams params=mActivity.findViewById(R.id.v_status_bar).getLayoutParams();
            params.width=ViewGroup.LayoutParams.MATCH_PARENT;
            params.height=result;
//            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, result);
//            if( mActivity.findViewById(R.id.v_status_bar).getLayoutParams() instanceof RelativeLayout.LayoutParams) {
//                mActivity.findViewById(R.id.v_status_bar).setLayoutParams(params);
//            }
            try {
                Class decorViewClazz = Class.forName("com.android.internal.policy.DecorView");
                Field field = decorViewClazz.getDeclaredField("mSemiTransparentStatusBarColor");
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_fanli.9.png
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_fanli.png
Binary files differ
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_hb.9.png
app/src/main/res/drawable-xhdpi/ic_goods_detail_hongbao_detail_hb.png
Binary files differ
app/src/main/res/drawable-xhdpi/icon_rank_2.png
app/src/main/res/layout/activity_goods_detail_new.xml
@@ -1,18 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/page_bg_color"
    android:orientation="vertical">
    
    <include layout="@layout/item_status_bar" />
    <LinearLayout
        android:id="@+id/ll_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <FrameLayout
            android:layout_width="match_parent"
@@ -113,8 +116,46 @@
                            android:textColor="#ff000000"
                            android:textSize="16sp" />
                        <!-- 权益类型 -->
                        <LinearLayout
                            android:id="@+id/ll_rights_type"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp">
                            <com.tejia.lijin.app.util.FlowLayout
                                android:id="@+id/fl_rights_type"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"></com.tejia.lijin.app.util.FlowLayout>
                    </LinearLayout>
                    </LinearLayout>
                    <!-- 价格信息 -->
                    <RelativeLayout
                        android:id="@+id/rl_price"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginTop="12dp"
                        android:layout_marginRight="10dp"
                        android:background="@drawable/shape_goods_detail_item_bg"
                        android:descendantFocusability="blocksDescendants"
                        android:focusable="true"
                        android:focusableInTouchMode="true">
                        <androidx.recyclerview.widget.RecyclerView
                            android:nestedScrollingEnabled="false"
                            android:id="@+id/rv_price_info"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"></androidx.recyclerview.widget.RecyclerView>
                    </RelativeLayout>
                    <LinearLayout
                        android:id="@+id/ll_address"
@@ -144,40 +185,6 @@
                    </LinearLayout>
                    <!-- 权益类型 -->
                    <LinearLayout
                        android:id="@+id/ll_rights_type"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginTop="12dp"
                        android:layout_marginRight="10dp"
                        android:background="@drawable/shape_goods_detail_item_bg">
                        <com.tejia.lijin.app.util.FlowLayout
                            android:id="@+id/fl_rights_type"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"></com.tejia.lijin.app.util.FlowLayout>
                    </LinearLayout>
                    <!-- 价格信息 -->
                    <LinearLayout
                        android:id="@+id/ll_price"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginTop="12dp"
                        android:layout_marginRight="10dp"
                        android:background="@drawable/shape_goods_detail_item_bg">
                        <androidx.recyclerview.widget.RecyclerView
                            android:id="@+id/rv_price_info"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"></androidx.recyclerview.widget.RecyclerView>
                    </LinearLayout>
                    <LinearLayout
                        android:id="@+id/ll_shop"
@@ -611,7 +618,8 @@
                android:layout_width="match_parent"
                android:layout_height="30dp"
                android:layout_marginTop="57dp"
                android:orientation="horizontal">
                android:orientation="horizontal"
                android:visibility="gone">
                <LinearLayout
                    android:id="@+id/ll_notification"
@@ -672,7 +680,6 @@
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_gravity="bottom"
            android:layout_marginBottom="50dp"
            android:background="@color/register_gray" />
@@ -894,4 +901,4 @@
    </FrameLayout>
</RelativeLayout>
</LinearLayout>
app/src/main/res/layout/item_goods_detail_hongbao.xml
@@ -4,9 +4,7 @@
    android:id="@+id/fl_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_goods_detail_hongbao_high_level_bg"
    android:gravity="center_horizontal"
    android:orientation="vertical">
    android:background="@drawable/shape_goods_detail_hongbao_high_level_bg">
    <LinearLayout
@@ -63,14 +61,21 @@
            </LinearLayout>
            <TextView
                android:id="@+id/tv_more"
            <FrameLayout
                android:id="@+id/fl_more"
                android:layout_width="56dp"
                android:layout_height="wrap_content"
                android:layout_height="10dp"
                android:layout_gravity="bottom|center_horizontal"
                android:layout_marginBottom="3dp">
            </TextView>
                <ImageView
                    android:id="@+id/iv_more"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"></ImageView>
            </FrameLayout>
            <TextView
@@ -94,7 +99,8 @@
            android:layout_marginRight="3.5dp"
            android:layout_marginBottom="3.5dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp">
            android:paddingRight="20dp"
            android:visibility="gone">
            <LinearLayout
                android:layout_width="0dp"
@@ -291,10 +297,20 @@
        android:layout_gravity="left|top"
        android:gravity="center_vertical">
        <com.tejia.lijin.app.ui.subview.RadiusCardView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:rcv_bottomRightRadiu="7dp"
            app:rcv_topLeftRadiu="7dp">
        <ImageView
            android:id="@+id/iv_level"
            android:layout_width="wrap_content"
            android:layout_height="12.5dp"></ImageView>
                android:layout_height="12.5dp"
                android:scaleType="centerCrop"></ImageView>
        </com.tejia.lijin.app.ui.subview.RadiusCardView>
        <TextView
            android:id="@+id/tv_level_desc"
app/src/main/res/layout/item_goods_detail_rights.xml
@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_content"
    android:layout_width="match_parent"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:paddingLeft="7.5dp">
    android:paddingLeft="7.5dp"
    android:paddingTop="1dp"
    android:paddingRight="5dp"
    android:paddingBottom="1dp">
    <TextView
        android:id="@+id/tv_money"
@@ -18,6 +21,7 @@
    <TextView
        android:id="@+id/tv_desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="4.5dp"
app/src/main/res/values/attr.xml
@@ -60,4 +60,16 @@
        <attr name="suffixSecondRightMargin" format="dimension" />
        <attr name="suffixMillisecondLeftMargin" format="dimension" />
    </declare-styleable>
    <declare-styleable name="RadiusCardView">
        <!--        左上圆角大小-->
        <attr name="rcv_topLeftRadiu" format="dimension" />
        <!--        右上圆角大小-->
        <attr name="rcv_topRightRadiu" format="dimension" />
        <!--        右下圆角大小-->
        <attr name="rcv_bottomRightRadiu" format="dimension" />
        <!--        左下圆角大小-->
        <attr name="rcv_bottomLeftRadiu" format="dimension" />
    </declare-styleable>
</resources>