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.pngBinary 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.pngBinary 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>