app/build.gradle
@@ -121,6 +121,12 @@ implementation 'androidx.multidex:multidex:2.0.0' api files('libs/tbs_sdk_thirdapp_v2.4.0.1073_36840_sharewithdownload_obfs_20161011_194834.jar') //阿里云手机号认证 implementation files('libs/crashshield-2.0.0-release.aar') implementation files('libs/logger-2.0.0-release.aar') implementation files('libs/main-2.0.0-release.aar') implementation files('libs/phoneNumber-L-AuthSDK-2.12.0.aar') // //fastjson (以使用方接入版本为准) // implementation(name: 'fastjson-1.2.9', ext: 'jar') app/libs/crashshield-2.0.0-release.aarBinary files differ
app/libs/logger-2.0.0-release.aarBinary files differ
app/libs/main-2.0.0-release.aarBinary files differ
app/libs/phoneNumber-L-AuthSDK-2.12.0.aarBinary files differ
app/src/main/java/com/tejia/lijin/app/ui/dialog/CopyLinkDialog.java
@@ -23,6 +23,10 @@ import com.app.hubert.guide.util.ScreenUtils; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.RequestOptions; import com.tejia.lijin.app.util.goods.GoodsDetailListUtil; import com.tejia.lijin.app.util.ui.GoodsDetailUtil; import com.tejia.lijin.app.util.ui.GoodsRightViewHolder; import com.wpc.library.util.SystemCommon; import com.wpc.library.util.common.DimenUtils; import com.tejia.lijin.app.R; @@ -32,6 +36,8 @@ import com.tejia.lijin.app.util.ImageUtil; import com.tejia.lijin.app.util.JumpActivityUtil; import com.tejia.lijin.app.util.clipboard.ClipboardUtil; import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade; /** * 猜你喜欢dialog @@ -120,22 +126,13 @@ dialog.addContentView(layout, new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); LinearLayout ll_item1 = layout.findViewById(R.id.ll_horizontal_item);//商品详情布局 LinearLayout ll_goods_detail = layout.findViewById(R.id.ll_goods_detail);//商品详情布局 RelativeLayout ll_not_item = layout.findViewById(R.id.ll_not_item);//未加入淘宝联盟布局 TextView tv_go = layout.findViewById(R.id.tv_go); TextView tv_left = layout.findViewById(R.id.tv_left); GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setCornerRadius(DimenUtils.dip2px(context, 40)); gradientDrawable.setStroke(DimenUtils.dip2px(context, 1), context.getResources().getColor(R.color.theme)); gradientDrawable.setColor(context.getResources().getColor(R.color.white)); tv_left.setBackgroundDrawable(gradientDrawable); tv_left.setVisibility(View.GONE); if (type == 4) {/**兼容未加入淘宝联盟的情况*/ ll_item1.setVisibility(View.GONE);//商品详情 ll_goods_detail.setVisibility(View.GONE);//商品详情 ll_not_item.setVisibility(View.VISIBLE);//未加入淘宝联盟 tv_go.setText("查看相似"); tv_left.setText("查看相似"); ImageView ll_not_img = layout.findViewById(R.id.ll_not_img); TextView ll_not_title1 = layout.findViewById(R.id.ll_not_title1); // 图片 @@ -146,7 +143,7 @@ .into(ll_not_img); ll_not_title1.setText(info.getGoods().getTitle());//纯标题 if (positiveButtonClickListener != null) { tv_go.setOnClickListener(new View.OnClickListener() { tv_left.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); ClipboardUtil.emptyClipboard(context); @@ -154,160 +151,25 @@ }); } } else {/**商品详情布局*/ ll_item1.setVisibility(View.VISIBLE);//商品详情 ll_goods_detail.setVisibility(View.VISIBLE);//商品详情 ll_not_item.setVisibility(View.GONE);//未加入淘宝联盟 if (info.getLeft() != null) { tv_left.setVisibility(View.VISIBLE); tv_left.setText(info.getLeft().getName()); if (positiveButtonClickListener != null) { tv_left.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { JumpActivityUtil.jumpPage(context, info.getLeft().getJumpDetail(), info.getLeft().getParams()); ClipboardUtil.emptyClipboard(context); if (dialog.isShowing()) dialog.dismiss(); } }); } else tv_left.setVisibility(View.GONE); if (info.getRight() != null) { tv_go.setText(info.getRight().getName()); tv_go.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { JumpActivityUtil.jumpPage(context, info.getRight().getJumpDetail(), info.getRight().getParams()); positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); ClipboardUtil.emptyClipboard(context); } }); } else { tv_go.setText("去看看"); if (positiveButtonClickListener != null) { tv_go.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { positiveButtonClickListener.onClick(dialog, DialogInterface.BUTTON_POSITIVE); ClipboardUtil.emptyClipboard(context); } }); } } LinearLayout ll_coupon_bg1 = layout.findViewById(R.id.ll_coupon_bg1); ImageView iv_pic1 = layout.findViewById(R.id.iv_movie_cover1); TextView tv_normal_price1 = layout.findViewById(R.id.tv_normal_price1); TextView tv_shop_name1 = layout.findViewById(R.id.tv_shop_name1); TextView tv_name1 = layout.findViewById(R.id.tv_movie_title1); TextView tv_price1 = layout.findViewById(R.id.tv_price1); TextView tv_coupon_price1 = layout.findViewById(R.id.tv_coupon_price1); TextView tv_favourable1 = layout.findViewById(R.id.tv_favourable1); TextView tv_rate_info = layout.findViewById(R.id.tv_rate_info); LinearLayout ll_discount_new = layout.findViewById(R.id.ll_discount_new); TextView tv_discount_new = layout.findViewById(R.id.tv_discount_new); TextView tv_sale_num1 = layout.findViewById(R.id.tv_sale_num1); TextView tv_sale_num2 = layout.findViewById(R.id.tv_sale_num2); LinearLayout ll_shop1 = layout.findViewById(R.id.ll_shop1); //不加商品类型图标(淘宝联盟不允许用链接搜索) ImageUtil.showImageFaceDialog(context, info.getGoods().getTitle(), info.getGoods().getShopType(), tv_name1); // tv_name1.setText(taoBaoGoodsBrief.getTitle());//纯标题 tv_normal_price1.setText("¥" + info.getGoods().getZkPrice()); tv_normal_price1.setPaintFlags(tv_normal_price1.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); // 图片 Glide.with(context).load(info.getGoods().getPicUrl()). placeholder(R.drawable.ic_goods_default).error(R.drawable.ic_goods_default). transform(new GlideRoundTransform(context, 5)) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(iv_pic1); // ImageLoader.getInstance().displayImage(taoBaoGoodsBrief.getPicUrl(), iv_pic1, options); if (info.getGoods().getShopInfo() != null && info.getGoods().getShopInfo().getShopName() != null) { ll_shop1.setVisibility(View.VISIBLE); tv_shop_name1.setText(info.getGoods().getShopInfo().getShopName()); Drawable drawable = context.getResources().getDrawable(R.drawable.ic_shopci); drawable.setBounds(0, 0, 27 * tv_shop_name1.getLineHeight() / 24, tv_shop_name1.getLineHeight());//第一0是距左边距离,第二0是距上边距离,30、35分别是长宽 tv_shop_name1.setCompoundDrawables(drawable, null, null, null);//只放左边 } else { ll_shop1.setVisibility(View.GONE); // v_top.setVisibility(position == 0 ? View.VISIBLE : View.GONE); ImageView iv_pic = layout.findViewById(R.id.iv_pic); try { Glide.with(context).load(info.getGoods().getPicUrl()).apply(new RequestOptions().centerCrop()).transform(new GlideRoundTransform(context, 5)).transition(withCrossFade()).placeholder(R.drawable.ic_goods_default).diskCacheStrategy(DiskCacheStrategy.ALL).into(iv_pic); } catch (IllegalArgumentException e) { } tv_price1.setTextColor(context.getResources().getColor(R.color.theme)); if (info.getGoods().getMoneyInfo() != null && info.getGoods().getMoneyInfo().getRateInfo() != null) tv_rate_info.setText(info.getGoods().getMoneyInfo().getRateInfo()); if (info.getGoods().getMoneyInfo().getMoneyType() == 1) { tv_favourable1.setBackgroundResource(R.drawable.shape_goods_list_price_fan); tv_favourable1.setText("返 " + info.getGoods().getMoneyInfo().getFanliMoney()); } else { tv_favourable1.setBackgroundResource(R.drawable.shape_goods_list_price_fan); tv_favourable1.setText("奖 " + info.getGoods().getMoneyInfo().getFanliMoney()); } String disCount; if (!info.getGoods().isHasCoupon()) { ll_coupon_bg1.setVisibility(View.GONE); disCount = "¥ " + info.getGoods().getZkPrice(); if (info.getGoods().getGoodsType() == Constant.GOODS_TYPE_VIP) { disCount = "¥ " + info.getGoods().getCouponPrice(); } } else { ll_coupon_bg1.setVisibility(View.VISIBLE); disCount = "¥ " + info.getGoods().getCouponPrice(); tv_coupon_price1.setVisibility(View.VISIBLE); tv_coupon_price1.setText("¥ " + info.getGoods().getCouponInfo().getAmount()); } tv_sale_num1.setTextColor((info.getGoods().getSalesType() == 1 || info.getGoods().getSalesType() == 4) ? context.getResources().getColor(R.color.gray5) : info.getGoods().getSalesType() == 2 ? context.getResources().getColor(R.color.goods_sale_num_text_color_orange) : context.getResources().getColor(R.color.goods_sale_num_text_color_blue)); tv_sale_num1.setText(info.getGoods().getSalesType() == 1 ? "月销 " + info.getGoods().getSalesCount() : info.getGoods().getSalesType() == 2 ? "2小时销量 " + info.getGoods().getSalesCount() : info.getGoods().getSalesType() == 3 ? "今日销量 " + info.getGoods().getSalesCount() : "总销量 " + info.getGoods().getSalesCount()); tv_sale_num2.setTextColor((info.getGoods().getSalesType() == 1 || info.getGoods().getSalesType() == 4) ? context.getResources().getColor(R.color.gray5) : info.getGoods().getSalesType() == 2 ? context.getResources().getColor(R.color.goods_sale_num_text_color_orange) : context.getResources().getColor(R.color.goods_sale_num_text_color_blue)); tv_sale_num2.setText(info.getGoods().getSalesType() == 1 ? "月销 " + info.getGoods().getSalesCount() : info.getGoods().getSalesType() == 2 ? "2小时销量 " + info.getGoods().getSalesCount() : info.getGoods().getSalesType() == 3 ? "今日销量 " + info.getGoods().getSalesCount() : "总销量 " + info.getGoods().getSalesCount()); tv_sale_num2.setVisibility(View.GONE); if (info.getGoods().getGoodsType() == Constant.GOODS_TYPE_VIP) { tv_sale_num1.setVisibility(View.GONE); ll_discount_new.setVisibility(View.VISIBLE); tv_discount_new.setText(info.getGoods().getDiscount()); } else { ll_discount_new.setVisibility(View.GONE); tv_sale_num1.setVisibility(View.VISIBLE); } int pos = disCount.indexOf("."); Spannable span = new SpannableString(disCount); span.setSpan(new RelativeSizeSpan(1.2f), 1, pos > 1 ? pos : disCount.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //span.setSpan(new StyleSpan(Typeface.BOLD), 1, disCount.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); tv_price1.setText(span); //商品详情填充 GoodsDetailListUtil.setGoodsDetail(context, info.getGoods(), new GoodsRightViewHolder(ll_goods_detail)); } // set the confirm button final ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); //动态改变shape GradientDrawable shape = new GradientDrawable(); shape.setCornerRadius(ScreenUtils.dp2px(context, 100)); //设置颜色 shape.setColor(context.getResources().getColor(R.color.theme)); //设置大小 tv_go.setBackground(shape); if (negativeButtonClickListener != null) { @@ -321,7 +183,7 @@ dialog.setContentView(layout); android.view.WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); params.width = (int) ((SystemCommon.getScreenWidth(context) * 19) / 23); params.width = (int) ((SystemCommon.getScreenWidth(context) * 4) / 5); params.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; dialog.getWindow().setAttributes(params); dialog.setCanceledOnTouchOutside(false); app/src/main/java/com/tejia/lijin/app/ui/mine/LoginSelectActivity.java
@@ -4,6 +4,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; @@ -15,8 +16,14 @@ import android.widget.TextView; import android.widget.Toast; import com.androidquery.AQuery; import com.mobile.auth.gatewayauth.AuthUIConfig; import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper; import com.mobile.auth.gatewayauth.TokenResultListener; import com.tejia.lijin.app.util.user.AliyunSmsOneKeyLoginManager; import com.tencent.mm.opensdk.modelmsg.SendAuth; import com.umeng.analytics.MobclickAgent; import com.wpc.library.util.common.DimenUtils; import com.wpc.library.util.common.StringUtils; import com.wpc.library.widget.PhoneNumberClearEditText; import com.tejia.lijin.app.BasicTextHttpResponseHandler; @@ -47,13 +54,12 @@ public final static int TYPE_LOGIN = 1;//登录 public final static int TYPE_BIND = 2;//绑定 public final static int TYPE_BIND_WITHOUT_LOGINED = 3;//未登录绑定 private ImageView iv_close, iv_contact_kefu, iv_login_wechat; private TextView tv_user_agreement, tv_other_login, tv_mobile_hint, tv_privacy_policies, tv_login_top_hint, tv_mobile_type; FrameLayout fl_login_gain_sms; private TextView tv_login_gain_sms, tv_user_agreement, tv_other_login, tv_privacy_policies, tv_mobile_type; private PhoneNumberClearEditText et_mobile_num; LinearLayout ll_user_agreement; private ImageView et_mobile_numimg; private AQuery mAquery; String uid; boolean isWXLogin = false; @@ -61,22 +67,81 @@ int type; String key;//微信登录尚未绑定手机时回传的标识 private static String TAG="LoginSelectActivity"; private static String TAG = "LoginSelectActivity"; private AliyunSmsOneKeyLoginManager aliyunSmsOneKeyLoginManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login_select); mAquery = new AQuery(this); TopStatusSettings.setStatusViewAndDeepColorNoView(this); // tv_user_agreement.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); initData(getIntent()); String from = getIntent().getStringExtra("from"); UserCustomEvent.userLogin(this, StringUtils.isEmpty(from) ? "其它" : from); EventBus.getDefault().register(this); aliyunSmsOneKeyLoginManager = new AliyunSmsOneKeyLoginManager(this, null); aliyunSmsOneKeyLoginManager.init(new AliyunSmsOneKeyLoginManager.IOneKeyLoginListener() { @Override public void onFail(String st) { } @Override public void onCancel() { } @Override public void onEnvCheckSuccess() { } @Override public void onStartAuthPageSuccess() { } @Override public void onToken(String token) { } }); } private synchronized void openOneKeyLogin(final boolean notify) { ShoppingApi.allowOneKeyLogin(this, UserUtil.getLoginUid(this), new BasicTextHttpResponseHandler() { @Override public void onStart() { DialogUtil.show(loadingDialog); } @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optBoolean("IsPost")) { aliyunSmsOneKeyLoginManager.checkEnv(); } else { if (notify) { Toast.makeText(PhoneLoginActivity.this, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); } } } @Override public void onFinish() { DialogUtil.dismiss(loadingDialog); } }); } private void initData(Intent intent) { type =intent.getIntExtra("type", TYPE_LOGIN); type = intent.getIntExtra("type", TYPE_LOGIN); init(intent); addListener(); } @@ -84,7 +149,7 @@ @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Log.i(TAG,"onNewIntent"); Log.i(TAG, "onNewIntent"); initData(intent); } @@ -92,30 +157,19 @@ 初始化控件 */ private void init(Intent intent) { iv_close = findViewById(R.id.iv_close); iv_contact_kefu = findViewById(R.id.iv_contact_kefu); tv_mobile_hint = findViewById(R.id.tv_mobile_hint); tv_user_agreement = findViewById(R.id.tv_user_agreement); iv_login_wechat = findViewById(R.id.iv_login_wechat); fl_login_gain_sms = findViewById(R.id.fl_login_gain_sms); tv_login_gain_sms = findViewById(R.id.tv_login_gain_sms); et_mobile_num = findViewById(R.id.et_mobile_num); tv_other_login = findViewById(R.id.tv_other_login); tv_privacy_policies = findViewById(R.id.tv_privacy_policies); tv_login_top_hint = findViewById(R.id.tv_login_top_hint); tv_mobile_type = findViewById(R.id.tv_mobile_type); ll_user_agreement = findViewById(R.id.ll_user_agreement); et_mobile_numimg = findViewById(R.id.et_mobile_numimg); et_mobile_numimg.setColorFilter(getResources().getColor(R.color.black)); tv_mobile_hint.setTextColor(getResources().getColor(R.color.gray)); tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name))); fl_login_gain_sms.setEnabled(false); fl_login_gain_sms.setBackgroundResource(R.drawable.shape_login_gain_sms); SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); sp.edit().putBoolean("first", true).commit(); uid = intent.getStringExtra("uid"); key =intent.getStringExtra("key"); key = intent.getStringExtra("key"); getUserConfig(); } @@ -124,10 +178,6 @@ */ private void addListener() { tv_user_agreement.setOnClickListener(this); iv_close.setOnClickListener(this); iv_contact_kefu.setOnClickListener(this); fl_login_gain_sms.setOnClickListener(this); iv_login_wechat.setOnClickListener(this); tv_other_login.setOnClickListener(this); tv_privacy_policies.setOnClickListener(this); et_mobile_num.addTextChangedListener(new TextWatcher() { @@ -145,10 +195,6 @@ canSend = true; } } fl_login_gain_sms.setEnabled(canSend); fl_login_gain_sms.setBackgroundResource(canSend ? R.drawable.shape_mobile_login_light : R.drawable.shape_login_gain_sms); } @Override @@ -163,37 +209,42 @@ @Override protected void onResume() { super.onResume(); Log.i(TAG,"onResume"); Log.i(TAG, "onResume"); MobclickAgent.onResume(this); SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); boolean isLogin = sp.getBoolean("isLogin", false); boolean isLogin = UserUtil.isLogin(getApplicationContext()); if (isLogin) {//用户已经登录 if (isWXLogin) { finish(); return; } tv_login_top_hint.setText("请绑定你的常用手机号"); // tv_login_top_hint.setVisibility(View.INVISIBLE); ll_user_agreement.setVisibility(View.INVISIBLE); tv_other_login.setVisibility(View.INVISIBLE); iv_login_wechat.setVisibility(View.INVISIBLE); tv_mobile_type.setText("绑定"+getResources().getString(R.string.app_name)); tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name))); tv_mobile_hint.setVisibility(View.INVISIBLE); } else { if (type == TYPE_BIND_WITHOUT_LOGINED) {//用户尚未登录绑定电话号码 tv_login_top_hint.setText("请绑定你的常用手机号"); // tv_login_top_hint.setVisibility(View.INVISIBLE); // ll_user_agreement.setVisibility(View.INVISIBLE); tv_other_login.setVisibility(View.INVISIBLE); iv_login_wechat.setVisibility(View.INVISIBLE); ll_user_agreement.setVisibility(View.INVISIBLE); tv_mobile_type.setText("绑定"+getResources().getString(R.string.app_name)); tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name))); tv_mobile_hint.setVisibility(View.INVISIBLE); } } initView(type); } private void initView(int type) { switch (type) { case TYPE_LOGIN: mAquery.id(R.id.iv_login_mark).visibility(View.VISIBLE); mAquery.id(R.id.tv_bind_mark).visibility(View.GONE); mAquery.id(R.id.tv_other_login).visibility(View.VISIBLE); mAquery.id(R.id.ll_other_login).visibility(View.VISIBLE); mAquery.id(R.id.tv_login_onekey).text("本机号码一键登录"); mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name))); break; case TYPE_BIND: case TYPE_BIND_WITHOUT_LOGINED: mAquery.id(R.id.iv_login_mark).visibility(View.GONE); mAquery.id(R.id.tv_bind_mark).visibility(View.VISIBLE); mAquery.id(R.id.tv_other_login).visibility(View.GONE); mAquery.id(R.id.ll_other_login).visibility(View.GONE); mAquery.id(R.id.tv_login_onekey).text("本机号码一键绑定"); mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name))); break; } } @Override public void onClick(View view) { @@ -204,14 +255,7 @@ case R.id.iv_contact_kefu: KeFuUtil.jumpKeFu(LoginSelectActivity.this, "登录"); break; case R.id.tv_other_login: tv_other_login.setCompoundDrawablesWithIntrinsicBounds(0, 0, iv_login_wechat.getVisibility() == View.VISIBLE ? R.drawable.ic_other_login_close : R.drawable.ic_other_login_open, 0); iv_login_wechat.setVisibility(iv_login_wechat.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE); break; case R.id.tv_user_agreement: UserCustomEvent.userLoginProtocol(LoginSelectActivity.this); if (StringUtils.isEmpty(serviceProtocolLink)) @@ -220,9 +264,6 @@ intent.putExtra("url", serviceProtocolLink); startActivity(intent); break; //隐私政策 // serviceProtocolLink = jsonObject.optJSONObject("data").optString("serviceProtocolLink"); // privacyProtocolLink = jsonObject.optJSONObject("data").optString("privacyProtocolLink"); case R.id.tv_privacy_policies: UserCustomEvent.userLoginProtocol(LoginSelectActivity.this); if (StringUtils.isEmpty(privacyProtocolLink)) @@ -231,7 +272,7 @@ intent1.putExtra("url", privacyProtocolLink); startActivity(intent1); break; case R.id.iv_login_wechat: case R.id.tv_login_wx: UserCustomEvent.userLoginWeixin(LoginSelectActivity.this); if (ShoppingApplication.application.mWxApi.isWXAppInstalled()) { isWXLogin = true; @@ -243,8 +284,12 @@ Toast.makeText(LoginSelectActivity.this, "请先安装微信客户端", Toast.LENGTH_SHORT).show(); } break; case R.id.fl_login_gain_sms: fl_login_gain_sms.setEnabled(false); case R.id.tv_login_qq: //TODO QQ登录 break; case R.id.tv_login_gain_sms: tv_login_gain_sms.setEnabled(false); UserCustomEvent.userLoginSms(LoginSelectActivity.this); isWXLogin = false; if (type == TYPE_BIND || type == TYPE_BIND_WITHOUT_LOGINED) { @@ -252,6 +297,10 @@ } else if (type == TYPE_LOGIN) { getVerificationCode(); } break; case R.id.tv_login_onekey: //TODO 一键登录 break; } } @@ -287,8 +336,8 @@ @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { tv_mobile_hint.setTextColor(getResources().getColor(R.color.gray)); tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name))); mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.gray); mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name))); Intent intent = new Intent(LoginSelectActivity.this, LoginVerifyCodeActivity.class); intent.putExtra("title", "登录"); @@ -320,8 +369,8 @@ } }).create().show(); } else { tv_mobile_hint.setTextColor(getResources().getColor(R.color.detail_sharelist_reward_num)); tv_mobile_hint.setText(jsonObject.optString("msg")); mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.detail_sharelist_reward_num); mAquery.id(R.id.tv_mobile_hint).text(jsonObject.optString("msg")); Toast.makeText(LoginSelectActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show(); } } @@ -329,7 +378,7 @@ @Override public void onFinish() { super.onFinish(); fl_login_gain_sms.setEnabled(true); tv_login_gain_sms.setEnabled(true); pd.dismiss(); } }); @@ -344,12 +393,12 @@ } pd.show(); final String mobileNum = et_mobile_num.getText().toString().trim(); ShoppingApi.sendMSMBind(LoginSelectActivity.this, slideVerify + "", mobileNum,UserUtil.getUid(getApplicationContext()), new BasicTextHttpResponseHandler() { ShoppingApi.sendMSMBind(LoginSelectActivity.this, slideVerify + "", mobileNum, UserUtil.getUid(getApplicationContext()), new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { tv_mobile_hint.setTextColor(getResources().getColor(R.color.gray)); tv_mobile_hint.setText(String.format("新的手机号必须没有绑定过其他%s帐号",getResources().getString(R.string.app_name))); mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.gray); mAquery.id(R.id.tv_mobile_hint).text(String.format("新的手机号必须没有绑定过其他%s帐号", getResources().getString(R.string.app_name))); Intent intent = new Intent(LoginSelectActivity.this, LoginVerifyCodeActivity.class); intent.putExtra("title", "绑定"); intent.putExtra("uid", uid); @@ -392,8 +441,8 @@ } }).create().show(); } else { tv_mobile_hint.setTextColor(getResources().getColor(R.color.detail_sharelist_reward_num)); tv_mobile_hint.setText(jsonObject.optString("msg")); mAquery.id(R.id.tv_mobile_hint).textColorId(R.color.detail_sharelist_reward_num); mAquery.id(R.id.tv_mobile_hint).text(jsonObject.optString("msg")); Toast.makeText(LoginSelectActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show(); } } @@ -401,7 +450,7 @@ @Override public void onFinish() { super.onFinish(); fl_login_gain_sms.setEnabled(true); tv_login_gain_sms.setEnabled(true); if (pd.isShowing()) pd.dismiss(); } app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java
New file @@ -0,0 +1,2513 @@ package com.tejia.lijin.app.ui.recommend; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.DecelerateInterpolator; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; import android.widget.TextView; import android.widget.Toast; import com.alibaba.baichuan.android.trade.AlibcTrade; import com.alibaba.baichuan.android.trade.AlibcTradeSDK; import com.alibaba.baichuan.android.trade.model.AlibcShowParams; import com.alibaba.baichuan.android.trade.model.OpenType; import com.alibaba.baichuan.android.trade.page.AlibcBasePage; import com.alibaba.baichuan.android.trade.page.AlibcDetailPage; import com.alibaba.baichuan.trade.biz.AlibcConstants; import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType; import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; import com.alibaba.baichuan.trade.biz.login.AlibcLogin; import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback; import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.sina.weibo.sdk.share.WbShareCallback; import com.tejia.lijin.app.BasicTextHttpResponseHandler; import com.tejia.lijin.app.BuXinConstant; import com.tejia.lijin.app.R; import com.tejia.lijin.app.ShoppingApi; import com.tejia.lijin.app.callBack.DragFloatActionInterface; import com.tejia.lijin.app.callBack.LonginTaobaoCallback; import com.tejia.lijin.app.callBack.MiDuoTradeCallback; import com.tejia.lijin.app.entity.CouponInfo; import com.tejia.lijin.app.entity.CouponUser; import com.tejia.lijin.app.entity.FreeSingleTicket; import com.tejia.lijin.app.entity.GoodsDetail; import com.tejia.lijin.app.entity.PushEventData; import com.tejia.lijin.app.entity.ShareUser; import com.tejia.lijin.app.entity.TaoBaoGoodsBrief; import com.tejia.lijin.app.entity.TbPidInfo; import com.tejia.lijin.app.entity.TopMenuRightPopContent; import com.tejia.lijin.app.entity.UserInfo; import com.tejia.lijin.app.entity.common.ImageShowEntity; import com.tejia.lijin.app.entity.share.SingleGoodsShareInfo; import com.tejia.lijin.app.ui.BaseActivity; import com.tejia.lijin.app.ui.dialog.JumpTaoBaoDialog; import com.tejia.lijin.app.ui.dialog.ReceiveCouponHintDialog; import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog; import com.tejia.lijin.app.ui.invite.ShareBrowserActivity; import com.tejia.lijin.app.ui.mine.Collect28Activity; import com.tejia.lijin.app.ui.mine.FreeSingleTicketAdapter; import com.tejia.lijin.app.ui.mine.LoginSelectActivity; import com.tejia.lijin.app.ui.mine.MyFootmarkActivity; import com.tejia.lijin.app.ui.mine.ShoppingTrolleyActivity; import com.tejia.lijin.app.ui.trends.BigImageActivity; import com.tejia.lijin.app.util.ApkUtil; import com.tejia.lijin.app.util.Constant; import com.tejia.lijin.app.util.DragFloatActionButton; import com.tejia.lijin.app.util.GlideCircleTransform; import com.tejia.lijin.app.util.GlideRoundTransform; import com.tejia.lijin.app.util.ImageUtil; import com.tejia.lijin.app.util.InitAlibcSdk; import com.tejia.lijin.app.util.KeFuUtil; import com.tejia.lijin.app.util.LoginTaobao; import com.tejia.lijin.app.util.RecordImageTextVideo; import com.tejia.lijin.app.util.SetLabels; import com.tejia.lijin.app.util.Toast_Dialog; import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil; import com.tejia.lijin.app.util.clipboard.ClipboardUtil; import com.tejia.lijin.app.util.ui.GoodsDetailUtil; import com.tejia.lijin.app.util.umengCustomEvent.GoodsCustomEvent; import com.tejia.lijin.app.util.user.LoginAndInviteStatusUtil; import com.tejia.lijin.app.util.user.UserUtil; import com.umeng.analytics.MobclickAgent; 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.SystemCommon; import com.wpc.library.util.common.DimenUtils; import com.wpc.library.util.common.StringUtils; import com.wpc.library.widget.MyGridView; import com.wpc.library.widget.MyListView; import com.wpc.library.widget.MyScrollView; import org.apache.http.Header; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; /** * Created by weikou2015 on 2018/5/11. * 商品详情过渡页--可跳转手淘原生,自我网页 */ public class GoodsDetailActivity extends BaseActivity implements View.OnClickListener, WbShareCallback, DragFloatActionInterface { private ImageView iv_top_left, iv_back, iv_shop_img, iv_shop_type, iv_notif_portrait, iv_imgtext_status, iv_share, iv_top_right, iv_like_state, iv_loading, iv_footermark, iv_rate; private TextView tv_top_title1, tv_top_title2, tv_top_title3, tv_top_title4, tv_shop_name, tv_shop_des, tv_shop_service, tv_shop_logistics, tv_shop_des_grade, tv_shop_logistics_grade, tv_shop_service_grade, tv_notif_name, tv_notif_des, tv_shop_see, tv_goods_des, tv_currunt_page, tv_goods_price_before, tv_sales_num, tv_coupon_show, tv_goods_price_coupon, tv_rebate_num, tv_coupon_num, tv_command_num, tv_coupon_date, tv_loading, tv_share_money_num, tv_buy, tv_rate, tv_like; private FrameLayout fl_back_face, fl_content, fl_receive_coupon, fl_command_copy; private LinearLayout fl_buy, ll_share_gain, ll_goods_detail_transition_top, ll_guess_like, ll_send_order, ll_add_collect, ll_labels, ll_no_net, ll_no_data, ll_request_failture, ll_notification, ll_loading, ll_coupon, ll_top_title, ll_command_copy; //发货地,相似搜索 private LinearLayout ll_address, ll_same; private TextView tv_address; //佣金构成信息 TextView tv_fanli_composition; LinearLayout ll_fanli_composition; private View v_1, v_2, v_3, v_4, v_cover, v_cover1, v_cover2; private MyGridView gv_guess, gv_relative; private MyScrollView lv_goods_pic; private WebView webView; private ViewPager vp_goods_detail; private ConnectivityChangeHelper mChangeHelper; private ImageAdapter bannerAdapter; private List<String> mBanners = new ArrayList<>(); private int picNum = 1; String goodsId; String goodsTaoBaoId; private DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.drawable.ic_goods_default) .showImageOnFail(R.drawable.ic_goods_default) .showImageOnLoading(R.drawable.ic_goods_default) .resetViewBeforeLoading(true).cacheInMemory(true) .cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY) .considerExifParams(true) .displayer(new FadeInBitmapDisplayer(300)).build(); private Map<String, String> exParams;//yhhpass参数 AlibcShowParams alibcShowParams; AlibcTaokeParams alibcTaokeParams; private String TYPE = "goodsDetail"; private TextView tv_notice_content; private LinearLayout ll_notice; private ImageView iv_close; AVLoadingIndicatorView avLoadingIndicatorView; //推荐语 private LinearLayout ll_recommend; private TextView tv_recommend; //口令复制 private TextView tv_copy_link; Animation inAnima; Animation outAnima; int index = 1; ListView lv_share_des; PopupWindow mTopRightPopupWindow; private List<TopMenuRightPopContent> mulList = new ArrayList<>(); TopMenuRightPopContentAdapter shareFromAdapter; private Toast_Dialog toast_dialog; boolean isScroll = false; boolean isVisible = false; long inputTime = 0; //底部按钮 private LinearLayout ll_coupon_container; /** * 免单开始 */ //免单 private TextView tv_coupon_date_miandan, tv_coupon_num_miandan; private FrameLayout fl_coupon_miandan; private TextView tv_big_btn; private LinearLayout ll_bottom; /* 商品详情免单券弹框接口 */ private void getGoodsMianDanCouponList() { if (pd == null) pd = new ShapeLoadingDialog.Builder(this).build(); if (!pd.isShowing()) pd.show(); String uid = getSharedPreferences("user", MODE_PRIVATE) .getString("uid", ""); ShoppingApi.getGoodsCouponList(this, uid, Constant.GOODS_TYPE_TB, goodsId, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { initPopubWindow(jsonObject.optJSONObject("data")); } else { Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("msg"), Toast.LENGTH_LONG).show(); } } @Override public void onFinish() { super.onFinish(); pd.dismiss(); } }); } private View view_share_buy_divider; private void initShareAndBuyBtn(boolean shareValid, boolean fanliValid) { if (view_share_buy_divider == null) view_share_buy_divider = findViewById(R.id.view_share_buy_divider); if (shareValid && fanliValid) { fl_buy.setVisibility(View.VISIBLE); ll_share_gain.setVisibility(View.VISIBLE); view_share_buy_divider.setVisibility(View.GONE); } else if (shareValid) { ll_share_gain.setVisibility(View.VISIBLE); ll_share_gain.setBackgroundResource(R.drawable.shape_go_share_full); fl_buy.setVisibility(View.GONE); view_share_buy_divider.setVisibility(View.VISIBLE); } else if (fanliValid) { fl_buy.setVisibility(View.VISIBLE); fl_buy.setBackgroundResource(R.drawable.shape_go_fanli_full); ll_share_gain.setVisibility(View.GONE); view_share_buy_divider.setVisibility(View.VISIBLE); } else { fl_buy.setVisibility(View.GONE); ll_share_gain.setVisibility(View.GONE); } } /** * 免单结束 */ @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_goods_detail_transition); TopStatusSettings.setStatusViewAndDeepColor2(this); from = getIntent().getStringExtra("from"); if (StringUtils.isEmpty(from)) from = ""; GoodsCustomEvent.goodsDetail(this, from); inputTime = System.currentTimeMillis(); //推荐语 ll_recommend = findViewById(R.id.ll_recommend); tv_recommend = findViewById(R.id.tv_recommend); //复制链接 findViewById(R.id.ll_copy_link).setOnClickListener(this); tv_copy_link = findViewById(R.id.tv_copy_link); tv_copy_link.setText("复制口令"); ll_coupon_container = findViewById(R.id.ll_coupon_container); lv_goods_pic = findViewById(R.id.lv_goods_pic); tv_top_title1 = findViewById(R.id.tv_top_title1); tv_top_title2 = findViewById(R.id.tv_top_title2); tv_top_title3 = findViewById(R.id.tv_top_title3); tv_top_title4 = findViewById(R.id.tv_top_title4); iv_like_state = findViewById(R.id.iv_like_state); tv_like = findViewById(R.id.tv_like); ll_add_collect = findViewById(R.id.ll_add_collect); ll_labels = findViewById(R.id.ll_labels); ll_send_order = findViewById(R.id.ll_send_order); tv_share_money_num = findViewById(R.id.tv_share_money_num); tv_buy = findViewById(R.id.tv_buy); ll_top_title = findViewById(R.id.ll_top_title); iv_shop_img = findViewById(R.id.iv_shop_img); iv_shop_type = findViewById(R.id.iv_shop_type); tv_shop_see = findViewById(R.id.tv_shop_see); tv_shop_name = findViewById(R.id.tv_shop_name); tv_shop_des = findViewById(R.id.tv_shop_des); tv_shop_service = findViewById(R.id.tv_shop_service); tv_shop_logistics = findViewById(R.id.tv_shop_logistics); tv_shop_des_grade = findViewById(R.id.tv_shop_des_grade); tv_shop_logistics_grade = findViewById(R.id.tv_shop_logistics_grade); tv_shop_service_grade = findViewById(R.id.tv_shop_service_grade); iv_footermark = findViewById(R.id.iv_footermark); // iv_like = findViewById(R.id.iv_like); v_cover = findViewById(R.id.v_cover); v_cover1 = findViewById(R.id.v_cover1); v_cover2 = findViewById(R.id.v_cover2); ll_goods_detail_transition_top = findViewById(R.id.ll_goods_detail_transition_top); v_1 = findViewById(R.id.v_1); v_2 = findViewById(R.id.v_2); v_3 = findViewById(R.id.v_3); v_4 = findViewById(R.id.v_4); avLoadingIndicatorView = findViewById(R.id.avi); ll_share_gain = findViewById(R.id.ll_share_gain); ll_guess_like = findViewById(R.id.ll_guess_like); fl_buy = findViewById(R.id.fl_buy); iv_imgtext_status = findViewById(R.id.iv_imgtext_status); iv_share = findViewById(R.id.iv_share); iv_top_right = findViewById(R.id.iv_top_bar_right); ll_loading = findViewById(R.id.ll_loading); tv_loading = findViewById(R.id.tv_loading); iv_loading = findViewById(R.id.iv_loading); tv_loading.setText("宝贝详情页加载中..."); AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable( R.drawable.anim_list_loading); iv_loading.setImageDrawable(animationDrawable); animationDrawable.start(); webView = findViewById(R.id.webView); webView.setWebViewClient(new MWebviewClient()); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); webView.setInitialScale(100); ll_loading.setVisibility(View.VISIBLE); avLoadingIndicatorView.setVisibility(View.VISIBLE); Animation ani = AnimationUtils.loadAnimation(this, R.anim.touming); //申明一个动画 avLoadingIndicatorView.setAnimation(ani);//为图片绑定动画 vp_goods_detail = findViewById(R.id.vp_goods_img); tv_currunt_page = findViewById(R.id.tv_page_num); tv_goods_price_before = findViewById(R.id.tv_goods_price_before); tv_sales_num = findViewById(R.id.tv_sales_num); tv_coupon_show = findViewById(R.id.tv_coupon_show); tv_goods_price_coupon = findViewById(R.id.tv_goods_price_coupon); tv_rebate_num = findViewById(R.id.tv_rebate_num); tv_coupon_num = findViewById(R.id.tv_coupon_num); tv_command_num = findViewById(R.id.tv_command_num); tv_coupon_date = findViewById(R.id.tv_coupon_date); fl_receive_coupon = findViewById(R.id.fl_receive_coupon); fl_command_copy = findViewById(R.id.fl_command_copy); ll_coupon = findViewById(R.id.ll_coupon); //发货地,相似搜索 ll_same = findViewById(R.id.ll_same); ll_address = findViewById(R.id.ll_address); tv_address = findViewById(R.id.tv_address); ll_command_copy = findViewById(R.id.ll_command_copy); gv_relative = findViewById(R.id.gv_relative); gv_guess = findViewById(R.id.gv_guess_like); fl_back_face = findViewById(R.id.fl_back_face); findViewById(R.id.fl_face).setVisibility(View.VISIBLE); iv_notif_portrait = findViewById(R.id.iv_notif_portrait); tv_notif_name = findViewById(R.id.tv_notif_name); tv_notif_des = findViewById(R.id.tv_notif_des); lv_share_des = findViewById(R.id.lv_share_des); lv_share_des.setClickable(false); //返利比例信息 tv_rate = findViewById(R.id.tv_rate); iv_rate = findViewById(R.id.iv_rate); ll_fanli_composition = findViewById(R.id.ll_fanli_composition); tv_fanli_composition = findViewById(R.id.tv_fanli_composition); bannerAdapter = new ImageAdapter(mBanners, this); vp_goods_detail.setAdapter(bannerAdapter); vp_goods_detail.setCurrentItem(0, true); iv_top_left = findViewById(R.id.iv_top_bar_left1); iv_back = findViewById(R.id.iv_back); tv_goods_des = findViewById(R.id.tv_goods_des); ll_bottom = findViewById(R.id.ll_bottom); tv_big_btn = findViewById(R.id.tv_big_btn); goodsId = getIntent().getExtras().getString("id"); rAdapter = new RelativeGoodsAdapter(this, rList, "相关推荐"); gv_relative.setAdapter(rAdapter); gAdapter = new RelativeGoodsAdapter(this, gList, "猜你喜欢"); gv_guess.setAdapter(gAdapter); ll_notification = findViewById(R.id.ll_notification); inAnima = AnimationUtils.loadAnimation(this, R.anim.goods_detail_notify_input); outAnima = AnimationUtils .loadAnimation(this, R.anim.goods_detail_notify_out); // ll_notification.startAnimation(inAnima); // inAnima.start(); inAnima.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { if (couponUsers != null && couponUsers.size() > 0) { CouponUser info = couponUsers.get(0); ll_notification.setVisibility(View.VISIBLE); Glide.with(GoodsDetailActivity.this).load(info.getPicUrl()) .placeholder(R.drawable.ic_default_portrait_light).error(R.drawable.ic_default_portrait_light) .transform(new GlideCircleTransform(GoodsDetailActivity.this)).into(iv_notif_portrait); tv_notif_name.setText(info.getName());//info.getName() tv_notif_des.setText(info.getMsg()); } } @Override public void onAnimationEnd(Animation animation) { ll_notification.postDelayed(new Runnable() { @Override public void run() { handler.sendEmptyMessage(0); } }, 3000); } @Override public void onAnimationRepeat(Animation animation) { } }); outAnima.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { ll_notification.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd(Animation animation) { ll_notification.setVisibility(View.GONE); if (couponUsers.size() > 0) couponUsers.remove(0); if (couponUsers.size() > 0) { ll_notification.postDelayed(new Runnable() { @Override public void run() { handler.sendEmptyMessage(1); } }, 1000); } } @Override public void onAnimationRepeat(Animation animation) { } }); tv_notice_content = findViewById(R.id.tv_notice_content); ll_notice = findViewById(R.id.ll_notice); iv_close = findViewById(R.id.iv_close); getAppPageNotification(); fl_content = findViewById(R.id.fl_content); ll_no_net = findViewById(R.id.ll_no_net); ll_no_data = findViewById(R.id.ll_no_data); ll_request_failture = findViewById(R.id.ll_request_failture); findViewById(R.id.tv_net_setting).setOnClickListener(this); findViewById(R.id.tv_refresh).setOnClickListener(this); findViewById(R.id.fl_goods_detail).setOnClickListener(this); iv_top_left.setOnClickListener(this); iv_back.setOnClickListener(this); tv_top_title1.setOnClickListener(this); tv_top_title2.setOnClickListener(this); tv_top_title3.setOnClickListener(this); tv_top_title4.setOnClickListener(this); ll_add_collect.setOnClickListener(this); ll_send_order.setOnClickListener(this); ll_share_gain.setOnClickListener(this); fl_receive_coupon.setOnClickListener(this); fl_back_face.setOnClickListener(this); fl_buy.setOnClickListener(this); iv_footermark.setOnClickListener(this); // iv_like.setOnClickListener(this); ll_top_title.setVisibility(View.GONE); iv_share.setOnClickListener(this); iv_top_right.setOnClickListener(this); tv_shop_see.setOnClickListener(this); fl_command_copy.setOnClickListener(this); v_cover2.setOnClickListener(this); //相似搜索点击 ll_same.setOnClickListener(this); iv_rate.setOnClickListener(this); tv_big_btn.setOnClickListener(this); if (getSharedPreferences("user", MODE_PRIVATE).getString("is_goods_web_detail", "0").equalsIgnoreCase("1")) { Intent intent = new Intent(GoodsDetailActivity.this, GoodsDetailBrowerActivity.class); intent.putExtra("id", goodsId); startActivity(intent); finish(); } vp_goods_detail.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { tv_currunt_page.setText((position + 1) + "/" + picNum); } @Override public void onPageScrollStateChanged(int state) { } }); lv_goods_pic.setOnScrollListener(new MyScrollView.OnScrollListener() { @Override public void onScroll(int scrollY) { int titleHeight = DimenUtils.dip2px(GoodsDetailActivity.this, 48); int marginTopHeight = DimenUtils.dip2px(GoodsDetailActivity.this, 8); if (scrollY < (ll_goods_detail_transition_top.getHeight() - titleHeight * 2)) {//头部 setPosition(1); } else if (scrollY >= ll_goods_detail_transition_top.getHeight() - titleHeight * 2 && scrollY < (ll_goods_detail_transition_top.getHeight() + webView.getHeight() - titleHeight) && webView.getVisibility() != View.GONE) {//详情图片 setPosition(2); } else if (scrollY >= (ll_goods_detail_transition_top.getHeight() + webView.getHeight() - titleHeight + marginTopHeight) && scrollY < (ll_goods_detail_transition_top.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight) && webView.getVisibility() != View.GONE) {//猜你喜欢 setPosition(3); } else if (scrollY >= (ll_goods_detail_transition_top.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight)) {//推荐 setPosition(4); } else { setPosition(4); } float baseHeight = ll_goods_detail_transition_top.getHeight() / 4; if (scrollY >= 1 && scrollY < baseHeight) { if (scrollY / baseHeight < 0.1) { ll_top_title.setVisibility(View.GONE); iv_back.setVisibility(View.VISIBLE); } else if (baseHeight / scrollY < 0.1) { ll_top_title.setVisibility(View.VISIBLE); iv_back.setVisibility(View.GONE); } else { ll_top_title.setVisibility(View.VISIBLE); iv_back.setVisibility(View.VISIBLE); } ll_top_title.setAlpha(scrollY / baseHeight); iv_back.setAlpha(baseHeight / scrollY); isScroll = true; Log.i("mResult", "沿Y轴滑动的距离" + scrollY); } else if (scrollY > baseHeight) { ll_top_title.setVisibility(View.VISIBLE); iv_back.setVisibility(View.GONE); ll_top_title.setAlpha(1.0f); isScroll = true; } else if (scrollY < 1) { ll_top_title.setVisibility(View.GONE); iv_back.setVisibility(View.VISIBLE); iv_back.setAlpha(1.0f); } } }); gv_relative.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { TaoBaoGoodsBrief info = (TaoBaoGoodsBrief) adapterView.getAdapter().getItem(position); goodsId = info.getGoodsId(); getGoodsDetail(); } }); gv_guess.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { TaoBaoGoodsBrief info = (TaoBaoGoodsBrief) adapterView.getAdapter().getItem(position); goodsId = info.getGoodsId(); getGoodsDetail(); } }); initMianDanView(); initTopRightPopupWindow(); toast_dialog = new Toast_Dialog(this); tv_goods_des.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (tv_goods_des.getText() != null && !StringUtils.isEmpty(tv_goods_des.getText().toString())) { String str1 = tv_goods_des.getText().toString(); String substr1 = str1.replaceFirst("## ", ""); ClipboardUtil.copy(getApplicationContext(), substr1); // SingleToast.showToast(ll_novice.getContext(), "复制成功"); toast_dialog.MyDialog("标题复制成功", false); } return false; } }); acbutton = findViewById(R.id.actionButton); acbutton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //登陆 if (getSharedPreferences("user", MODE_PRIVATE).getBoolean("isLogin", false)) { LoginTaobao.getLoginTaobao(GoodsDetailActivity.this, new LonginTaobaoCallback() { @Override public void onSuccess() { startActivity(new Intent(GoodsDetailActivity.this, ShoppingTrolleyActivity.class)); } @Override public void onError() { Toast.makeText(GoodsDetailActivity.this, "登陆淘宝失败", Toast.LENGTH_SHORT).show(); } }); } else { Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); } } }); img = findViewById(R.id.actionButton_img); //获取 取消悬浮控件的宽高 ViewTreeObserver vto2 = img.getViewTreeObserver(); vto2.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { img.getViewTreeObserver().removeGlobalOnLayoutListener(this); //传入 主界面 指定控件的宽高 if (acbutton != null) { acbutton.setWidthHeight((int) (img.getWidth() * 0.77), (int) (img.getHeight() * 0.77)); } img.setVisibility(View.GONE);//隐藏 } }); // 购物车显示 RecordImageTextVideo textVideo = new RecordImageTextVideo(this); //服务器让显示 购物车&&本地也让显示 if (textVideo.getCart_float().equals("1") && textVideo.getLocalCart_float() != 1 && getSharedPreferences("user", MODE_PRIVATE).getBoolean("isLogin", false)) { acbutton.setVisibility(View.VISIBLE); } else {//隐藏购物车 acbutton.setVisibility(View.GONE); } mChangeHelper = new ConnectivityChangeHelper(this, new ConnectivityChangeHelper.OnConnectivityChangeListener() { @Override public void onNetworkUnAvailable() { if (mInfo == null) requestState(3); } @Override public void onNetworkAvailable() { requestState(0); if (mInfo == null) { getGoodsDetail(); } } }); tv_buy.postDelayed(new Runnable() { @Override public void run() { if ((!isDestroyed()) && isVisible && isScroll) { PushEventData info = new PushEventData(); info.setGoodsId(goodsId); info.setGoodsType("2"); Gson gson = new GsonBuilder().serializeNulls().create(); String data = gson.toJson(info); GoldPushEventRequest.request(GoodsDetailActivity.this, "scanGoods", data); } } }, 15 * 1000); } private ImageView img; private DragFloatActionButton acbutton; /** * 初始化右上角提示 */ private void initTopRightPopupWindow() { View view = getLayoutInflater().inflate(R.layout.item_share_from_filter, null, false); // 创建PopupWindow实例,200,150分别是宽度和高度 mTopRightPopupWindow = new PopupWindow(view, (int) (SystemCommon.getScreenWidth(this) / 2), ViewGroup.LayoutParams.WRAP_CONTENT, true); // 设置动画效果 [R.style.AnimationFade 是自己事先定义好的] // pw_filter.setAnimationStyle(R.style.pop_multiple); mTopRightPopupWindow.setTouchable(true); mTopRightPopupWindow.setOutsideTouchable(false); mTopRightPopupWindow.setFocusable(false); ListView lv = view.findViewById(R.id.lv_filter_pw); // mulList.add(new TopMenuRightPopContent("复制链接", R.drawable.ic_goods_detail_copy_link)); mulList.add(new TopMenuRightPopContent("帮助中心", R.drawable.ic_goods_detail_help_center)); mulList.add(new TopMenuRightPopContent("新手攻略", R.drawable.ic_goods_detail_novice)); mulList.add(new TopMenuRightPopContent("联系客服", R.drawable.ic_goods_detail_contact_kefu)); mulList.add(new TopMenuRightPopContent("我要吐槽", R.drawable.ic_goods_detail_criticism)); shareFromAdapter = new TopMenuRightPopContentAdapter(this, mulList); lv.setAdapter(shareFromAdapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mTopRightPopupWindow.dismiss(); v_cover.setVisibility(View.GONE); GoodsCustomEvent .goodsDetailMoreBtn(GoodsDetailActivity.this, mulList.get(position).getName()); SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); // if (position == 0) { // ClipboardManager manager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); // ClipData myClip = ClipData.newPlainText("text", h5Url); // manager.setPrimaryClip(myClip); // Toast.makeText(GoodsDetailActivity.this, "链接复制成功", Toast.LENGTH_LONG).show(); // } else if (position == 0) { Intent intent1 = new Intent(GoodsDetailActivity.this, ShareBrowserActivity.class); intent1.putExtra("title", "帮助中心"); intent1.putExtra("url", sp.getString("help", "")); startActivity(intent1); } else if (position == 1) { RecordImageTextVideo textVideo = new RecordImageTextVideo(GoodsDetailActivity.this); String url = textVideo.getvideoMoreUrl(); if (StringUtils.isEmpty(url)) { url = textVideo.gettxtImgUtl(); } Intent intent = new Intent(GoodsDetailActivity.this, ShareBrowserActivity.class); intent.putExtra("url", url); startActivity(intent); } else if (position == 2) { // startActivity(new Intent(GoodsDetailActivity.this, ContactUsActivity.class)); KeFuUtil.jumpKeFu(GoodsDetailActivity.this, "商品详情"); } else if (position == 3) { startActivity(new Intent(GoodsDetailActivity.this, GoComplainActivity.class)); } } }); mTopRightPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { v_cover2.setVisibility(View.GONE); } }); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0) { outAnima.setInterpolator(new AccelerateInterpolator()); ll_notification.setAnimation(outAnima); ll_notification.startAnimation(outAnima); } else if (msg.what == 1) { inAnima.setInterpolator(new DecelerateInterpolator()); ll_notification.setAnimation(inAnima); ll_notification.startAnimation(inAnima); // inAnima.start(); } else if (msg.what == 2) { lv_share_des.setSelection(0); } else if (msg.what == 3) {//关闭弹窗 if (dialog != null && dialog.isShowing()) dialog.dismiss(); } } }; class MWebviewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (null != url && url.startsWith("yestv://webviewHeight#")) { int height = Integer.parseInt(url.replace("yestv://webviewHeight#", "")); Log.i("mResult", "webView的高度为:" + height + ""); webView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height)); return true; } return super.shouldOverrideUrlLoading(view, url); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); webView.postDelayed(new Runnable() { @Override public void run() { ll_loading.setVisibility(View.GONE); } }, 3000); } } private void getAppPageNotification() { ShoppingApi.getAppPageNotification(this, TYPE, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optInt("code") == 0) { boolean isClose = jsonObject.optJSONObject("data").optBoolean("canClose"); String content = jsonObject.optJSONObject("data").optString("content"); final String contentUrl = jsonObject.optJSONObject("data").optString("contentUrl"); final String md5 = jsonObject.optJSONObject("data").optString("md5"); tv_notice_content.setText(content); final SharedPreferences sp = getSharedPreferences("notice", Context.MODE_PRIVATE); if (!sp.getBoolean(md5, false)) {//false 展示,true不展示 ll_notice.setVisibility(View.VISIBLE); } else { ll_notice.setVisibility(View.GONE); } if (isClose) { iv_close.setImageDrawable(getResources().getDrawable(R.drawable.ic_notice_close)); iv_close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ll_notice.setVisibility(View.GONE); SharedPreferences.Editor editor = sp.edit(); editor.putBoolean(md5, true); editor.commit(); } }); } else { iv_close.setImageDrawable(getResources().getDrawable(R.drawable.ic_notice_input)); } ll_notice.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(GoodsDetailActivity.this, ShareBrowserActivity.class); intent.putExtra("url", contentUrl); startActivity(intent); } }); } } @Override public void onFinish() { super.onFinish(); if (!isQuestDetail && avLoadingIndicatorView.isShown()) { avLoadingIndicatorView.hide(); } } }); } GoodsDetail mInfo; boolean isNative = true; TbPidInfo tInfo; List<CouponUser> couponUsers; List<ShareUser> sList; ShareExampleAdapter shareAdapter; // ProgressDialog pd; String from; String noRebateHelpLink; boolean isQuestDetail; private void getGoodsDetail() { isQuestDetail = true; String uid = getSharedPreferences("user", MODE_PRIVATE).getString("uid", "0"); ShoppingApi.getGoodsInfoTB(this, goodsId, uid, from, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { // findViewById(R.id.fl_face).setVisibility(View.GONE); // findViewById(R.id.ll_goods_nothing).setVisibility(View.GONE); // fl_content.setVisibility(View.VISIBLE); 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(), GoodsDetail.class); getGoodsRecommend(); h5Url = mInfo.getExtra().getH5Url();//产品h5 链接 couponUsers = mInfo.getExtra().getListCouponUser(); sList = mInfo.getExtra().getListShareUser(); noRebateHelpLink = mInfo.getExtra().getShare().getHelpLink(); if (mInfo.getGoods() != null && mInfo.getGoods().getLabels() != null && mInfo.getGoods().getLabels().size() > 0) { SetLabels.addLabel(GoodsDetailActivity.this, ll_labels, mInfo.getGoods().getLabels()); ll_labels.setVisibility(View.VISIBLE); } else { ll_labels.setVisibility(View.GONE); } if (sList.size() <= 0) { lv_share_des.setVisibility(View.GONE); } else { lv_share_des.setVisibility(View.VISIBLE); } shareAdapter = new ShareExampleAdapter(sList); lv_share_des.setAdapter(shareAdapter); if (timer != null) { timer.cancel(); timer = null; index = 1; } startTimer(sList.size()); goodsTaoBaoId = mInfo.getGoods().getGoodsId(); isCollect = mInfo.getExtra().isCollected(); if (couponUsers != null && couponUsers.size() > 0) { inAnima.setInterpolator(new DecelerateInterpolator()); ll_notification.setAnimation(inAnima); ll_notification.startAnimation(inAnima); } ImageUtil.showImageFace(GoodsDetailActivity.this, mInfo.getGoods().getTitle(), mInfo.getGoods().getShopType(), tv_goods_des); tv_goods_price_before.setText(mInfo.getGoods().getPriceName() + " ¥" + mInfo.getGoods().getZkPrice()); webView.loadUrl(mInfo.getExtra().getDetailUrl()); tv_sales_num.setText("月销 " + mInfo.getGoods().getSalesCount()); tv_rebate_num.setText(" 返" + mInfo.getGoods().getMoneyInfo().getFanliMoney()); tv_share_money_num.setText(mInfo.getGoods().getMoneyInfo().getShareMoney()); //设置比例信息 if (!StringUtils.isEmpty(mInfo.getGoods().getMoneyInfo().getRateInfo())) { tv_rate.setVisibility(View.VISIBLE); tv_rate.setText(mInfo.getGoods().getMoneyInfo().getRateInfo()); } else { tv_rate.setVisibility(View.GONE); } if (!StringUtils.isEmpty(mInfo.getGoods().getMoneyInfo().getRateInfoHelpUrl())) { iv_rate.setVisibility(View.VISIBLE); } else { iv_rate.setVisibility(View.GONE); } //设置推荐信息 if (StringUtils.isEmpty(mInfo.getGoods().getDescription())) { ll_recommend.setVisibility(View.GONE); } else { ll_recommend.setVisibility(View.VISIBLE); tv_recommend.setText(mInfo.getGoods().getDescription()); } //设置补贴信息 if (!StringUtils.isBlank(mInfo.getGoods().getMoneyInfo().getCompositionInfo())) { tv_fanli_composition.setText(mInfo.getGoods().getMoneyInfo().getCompositionInfo()); } Glide.with(GoodsDetailActivity.this).load(mInfo.getGoods().getShopInfo().getShopIcon()) .placeholder(R.drawable.ic_goods_default) .error(R.drawable.ic_goods_default) .transform(new GlideRoundTransform(GoodsDetailActivity.this, 5)).into(iv_shop_img); tv_shop_name.setText(mInfo.getGoods().getShopInfo().getShopName()); iv_shop_type.setImageDrawable(mInfo.getGoods().getShopInfo().getUserType() == 0 ? getResources().getDrawable(R.drawable.ic_shop_type_taobao) : getResources().getDrawable(R.drawable.ic_shop_type_tmall)); tv_shop_des.setText("宝贝描述: " + mInfo.getGoods().getShopInfo().getScoreGoods()); tv_shop_service.setText("卖家服务: " + mInfo.getGoods().getShopInfo().getScoreSeller()); tv_shop_logistics.setText("物流服务: " + mInfo.getGoods().getShopInfo().getScoreLogistics()); tv_shop_des_grade.setText(mInfo.getGoods().getShopInfo().getScoreGoodsD() == 0 ? "平" : mInfo.getGoods().getShopInfo().getScoreGoodsD() == 1 ? "高" : "低"); tv_shop_service_grade.setText(mInfo.getGoods().getShopInfo().getScoreSellerD() == 0 ? "平" : mInfo.getGoods().getShopInfo().getScoreSellerD() == 1 ? "高" : "低"); tv_shop_logistics_grade.setText(mInfo.getGoods().getShopInfo().getScoreLogisticsD() == 0 ? "平" : mInfo.getGoods().getShopInfo().getScoreLogisticsD() == 1 ? "高" : "低"); if (mInfo.getGoods().getOtherInfo().getRewardCoupon() != null) { tv_reward_money.setText(mInfo.getGoods().getOtherInfo().getRewardCoupon().getMaxMoney()); tv_reward_hint.setText(mInfo.getGoods().getOtherInfo().getRewardCoupon().getDesc()); } if (mInfo.getExtra().isCollected()) { setCollectionData(true); } else { setCollectionData(false); } if (mInfo.getGoods().isHasCoupon()) { if (mInfo.getGoods().getCouponInfoList() == null) { List<CouponInfo> couponInfoList = new ArrayList<>(); couponInfoList.add(mInfo.getGoods().getCouponInfo()); mInfo.getGoods().setCouponInfoList(couponInfoList); } if (mInfo.getGoods().getCouponInfoList().size() > 3) initCouponInfo(mInfo.getGoods().getCouponInfoList().subList(0, 3)); else initCouponInfo(mInfo.getGoods().getCouponInfoList()); if (StringUtils.isEmpty(mInfo.getGoods().getCouponInfo().getToken())) { ll_command_copy.setVisibility(View.GONE); } else { ll_command_copy.setVisibility(View.VISIBLE); tv_command_num.setText(mInfo.getGoods().getCouponInfo().getToken()); } tv_buy.setText(mInfo.getGoods().getMoneyInfo().getFanliMoney()); tv_coupon_num.setText("¥ " + mInfo.getGoods().getCouponInfo().getAmount()); String couponDate = StringUtils.isEmpty(mInfo.getGoods().getCouponInfo().getStartTime()) ? "" : mInfo.getGoods().getCouponInfo().getStartTime() + "-" + mInfo.getGoods().getCouponInfo().getEndTime(); tv_coupon_date.setText("使用期限:" + couponDate); tv_goods_price_coupon.setText(mInfo.getGoods().getCouponPrice()); // NewbieGuide.with(GoodsDetailActivity.this) // .setLabel("guideDetail") //// .alwaysShow(true)//总是显示,调试时可以打开 // .addGuidePage(GuidePage.newInstance() // .addHighLight(fl_buy, HighLight.Shape.ROUND_RECTANGLE, // 20, 20, null) // .setLayoutRes(R.layout.item_guide_detail2, R.id.iv_next) // .setEverywhereCancelable(false) // ).show(); } else { ll_command_copy.setVisibility(View.GONE); tv_buy.setText(mInfo.getGoods().getMoneyInfo().getFanliMoney()); tv_coupon_show.setVisibility(View.GONE); ll_coupon.setVisibility(View.GONE); tv_goods_price_coupon.setText(mInfo.getGoods().getZkPrice()); } //发货地设置 if (!StringUtils.isBlank(mInfo.getGoods().getProvCity())) { ll_address.setVisibility(View.VISIBLE); tv_address.setText(mInfo.getGoods().getProvCity()); } //一键发单设置 GoodsDetailUtil.initSendOrderView(GoodsDetailActivity.this, mInfo.getExtra()); fl_buy.setVisibility(mInfo.getExtra().isFanliValid() ? View.VISIBLE : View.GONE); tv_rebate_num.setVisibility(mInfo.getExtra().isFanliValid() ? View.VISIBLE : View.GONE); Log.i("mResult", "isLike的值为" + mInfo.getGoods().getGoodsId()); picNum = mInfo.getGoods().getImgList().size(); tv_currunt_page.setText("1/" + picNum); mBanners.clear(); mBanners.addAll(mInfo.getGoods().getImgList()); bannerAdapter.notifyDataSetChanged(); vp_goods_detail.setCurrentItem(0); isNative = mInfo.getExtra().isNative(); setMianDanData(); initShareAndBuyBtn(mInfo.getExtra().isShareValid(), mInfo.getExtra().isFanliValid()); requestState(0); } else if (jsonObject.optString("code").equalsIgnoreCase("2")) { fl_content.setVisibility(View.GONE); findViewById(R.id.ll_goods_nothing).setVisibility(View.VISIBLE); findViewById(R.id.fl_face).setVisibility(View.VISIBLE); } } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); if (NetUtils.getNetworkState(GoodsDetailActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) { requestState(3); } else { requestState(2); if (mInfo == null) { Toast.makeText(GoodsDetailActivity.this, "获取商品详情失败,请稍后再试", Toast.LENGTH_SHORT).show(); GoodsDetailActivity.this.finish(); } } } @Override public void onFinish() { super.onFinish(); Log.e("mResult", "goodsdetail---onFinish()"); lv_goods_pic.scrollTo(0, 0); avLoadingIndicatorView.hide(); findViewById(R.id.fl_face).setVisibility(View.GONE); fl_content.setVisibility(View.VISIBLE); } }); } Timer timer; /** * 启动分享提示栏timer */ private void startTimer(final int length) { timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { if (index <= length) { lv_share_des.smoothScrollBy(DimenUtils.dip2px(GoodsDetailActivity.this, 62), 1000); index++; } else { index = 1; handler.sendEmptyMessage(2); } } }, 2000, 3000); } private void getGoodsRecommend() { ShoppingApi.getGuessAndRecommend(this, goodsId, mInfo.getGoods().getGoodsType() + "", 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) { rList.addAll(list2); rAdapter.notifyDataSetChanged(); } if (gList.size() == 0) { findViewById(R.id.fl_top_title3).setVisibility(View.GONE); ll_guess_like.setVisibility(View.GONE); } if (rList.size() == 0) { findViewById(R.id.fl_top_title4).setVisibility(View.GONE); findViewById(R.id.ll_relative_goods).setVisibility(View.GONE); } } } }); } JumpTaoBaoDialog dialog; boolean isFirst = true; List<CouponInfo> couponInfoList = new ArrayList<>(); GoodsDetailCouponAdapter couponAdapter = null; CouponInfo tempCouponInfo; MyListView couponListView; private void initCouponInfo(List<CouponInfo> couponList) { if (couponList != null && couponList.size() > 0) { couponInfoList.clear(); couponInfoList.addAll(couponList); if (couponAdapter == null) { couponAdapter = new GoodsDetailCouponAdapter(this, couponInfoList, new GoodsDetailCouponAdapter.IRecieveCoupon() { @Override public void recieve(CouponInfo info) { tempCouponInfo = info; recieveCoupon(info); } }); } if (couponListView == null) { couponListView = new MyListView(this); couponListView.setDivider(null); couponListView.setDividerHeight(DimenUtils.dip2px(this, 3)); ll_coupon_container.removeAllViews(); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); couponListView.setLayoutParams(params); ll_coupon_container.addView(couponListView, params); final LinearLayout footerView = new LinearLayout(this); footerView.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); footerView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); TextView textView = new TextView(this); textView.setText("点击查看更多 "); textView.setTextSize(11); textView.setTextColor(Color.rgb(102, 102, 102)); footerView.addView(textView); footerView.setBackground(null); ImageView imageView = new ImageView(this); imageView.setImageResource(R.drawable.ic_arrow_down); footerView.addView(imageView); footerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { initCouponInfo(mInfo.getGoods().getCouponInfoList()); couponListView.removeFooterView(footerView); } }); if (mInfo.getGoods().getCouponInfoList() != null && mInfo.getGoods().getCouponInfoList().size() > 3) couponListView.addFooterView(footerView); couponListView.setAdapter(couponAdapter); } couponAdapter.notifyDataSetChanged(); } } @Override protected void onResume() { super.onResume(); isVisible = true; mChangeHelper.registerReceiver(); // vp_goods_detail.postDelayed(mAutoScroller, 5000); SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); boolean isLogin = sp.getBoolean("isLogin", false); //VIP不在展示超级会员 UserInfo user = UserUtil.getUserInfo(this); if (user != null && user.isVip()) { ll_reward_coupon.setVisibility(View.GONE); } else ll_reward_coupon.setVisibility(View.VISIBLE); setMianDanData(); if (isLogin) { if (isClick == 1 && !isTBStartBind) { if (isFirst) { getTaoBaoH5AuthInfo("zigou"); } else { getTaoBaoH5AuthInfo2("zigou"); } } else if (isClick == 2 && !isTBStartBind) { if (mInfo != null) { if (isFirst) { getTaoBaoH5AuthInfo("share"); } else { getTaoBaoH5AuthInfo2("share"); isClick = 0; } } else { Toast.makeText(GoodsDetailActivity.this, "暂未获取到分享返利,请稍等", Toast.LENGTH_LONG).show(); isClick = 0; } } else if (isClick == 3) { if (isCollect) { setCollectionData(true); } else { collection(); } isClick = 0; } else if (isClick == 4) { if (AlibcLogin.getInstance().isLogin()) { isClick = 0; startActivity(new Intent(GoodsDetailActivity.this, ShoppingTrolleyActivity.class)); } // else { // tbLogin(); // } } else if (isClick == 5) { isClick = 0; startActivity(new Intent(GoodsDetailActivity.this, Collect28Activity.class)); } else if (isClick == 7) { sendOrder(); isClick = 0; } else if (isClick == 8) {//复制淘口令 commandCopy(); isClick = 0; } else if (isClick == 9) {//跳转奖励券获取 jumpDetail(); isClick = 0; } } } @Override protected void onPause() { super.onPause(); isVisible = false; mChangeHelper.unregisterReceiver(); timer(); } String clickUrl = ""; String couponUrl = ""; private String h5Url = "";//产品链接 int type = 0; /** * 获取PID 信息 */ private void getTBLinkInfo(String uid) { if (pd == null) pd = new ShapeLoadingDialog.Builder(this).build(); if (!pd.isShowing()) pd.show(); ShoppingApi.getTBLinkInfo(this, uid, goodsId, "goodsDetail", from, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { Gson gson = new GsonBuilder().serializeNulls().create(); isNative = jsonObject.optJSONObject("data").optBoolean("native"); type = Integer.parseInt(jsonObject.optJSONObject("data").optString("type")); if (jsonObject.optJSONObject("data").optJSONObject("tbPidInfo") != null) tInfo = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("tbPidInfo").toString(), TbPidInfo.class); JSONObject object = jsonObject.optJSONObject("data").optJSONObject("link"); if (object != null) { clickUrl = object.optString("clickUrl"); couponUrl = object.optString("couponUrl"); } Log.e("mResult", "getTBLinkInfo():type---" + type + "---isLogin---" + AlibcLogin.getInstance().isLogin()); if ((!StringUtils.isEmpty(from)) && from.equalsIgnoreCase("miandan")) { getGoodsMianDanCouponList(); } else { goBuy(); pd.dismiss(); } } } @Override public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) { super.onFailure(statusCode, headers, jsonObject, e); pd.dismiss(); } }); } private boolean isCollect = false; private int isClick = 0; private boolean isSpread = false;//图文是否展开 List<TaoBaoGoodsBrief> gList = new ArrayList<>(); RelativeGoodsAdapter gAdapter; List<TaoBaoGoodsBrief> rList = new ArrayList<>(); RelativeGoodsAdapter rAdapter; long lastShareTimeClick = 0; long lastBuyTimeClick = 0; //是否为复制链接按钮 boolean copyLink = false; //开始分享 private void startShare(boolean isLogin) { if (mInfo == null || mInfo.getGoods() == null) return; long cTime = System.currentTimeMillis(); if (cTime - lastShareTimeClick < 500) { lastShareTimeClick = cTime; return; } lastShareTimeClick = cTime; isTBStartBind = false; GoodsCustomEvent.goodsDetailShare(GoodsDetailActivity.this); if (isLogin) { if (mInfo != null) { getTaoBaoH5AuthInfo("share"); } else { Toast.makeText(GoodsDetailActivity.this, "暂未获取到分享返利,请稍等", Toast.LENGTH_LONG).show(); } } else { isClick = 2; Toast.makeText(GoodsDetailActivity.this, "请先登录板栗快省账号", Toast.LENGTH_LONG).show(); Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); } } @Override public void onClick(View v) { int titleHeight = DimenUtils.dip2px(GoodsDetailActivity.this, 48); int marginTopHeight = DimenUtils.dip2px(GoodsDetailActivity.this, 8); boolean isLogin = getSharedPreferences("user", MODE_PRIVATE).getBoolean("isLogin", false); switch (v.getId()) { case R.id.iv_back: finish(); break; case R.id.iv_top_bar_left1: finish(); break; case R.id.iv_share: case R.id.iv_top_bar_right: if (mTopRightPopupWindow.isShowing()) { mTopRightPopupWindow.dismiss(); } else { v_cover2.setVisibility(View.VISIBLE); mTopRightPopupWindow.showAsDropDown(iv_share); } break; case R.id.v_cover2: mTopRightPopupWindow.dismiss(); break; case R.id.tv_top_title1: lv_goods_pic.scrollTo(0, 0); setPosition(1); break; case R.id.tv_top_title2: lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() - titleHeight * 2); setPosition(2); break; case R.id.tv_top_title3: lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() + webView.getHeight() - titleHeight + marginTopHeight); setPosition(3); break; case R.id.tv_top_title4: lv_goods_pic.scrollTo(0, ll_goods_detail_transition_top.getHeight() + webView.getHeight() + ll_guess_like.getHeight() - titleHeight + marginTopHeight); setPosition(4); break; case R.id.ll_add_collect: if (!LoginAndInviteStatusUtil.acessNext(getApplicationContext(), UserUtil.getUid(getApplicationContext()) + "", true)) return; ll_add_collect.setEnabled(false); if (mInfo == null) { // SingleToast.showToast(GoodsDetailActivity.this, "没有获取到商品收藏状态,请稍等!"); Toast.makeText(GoodsDetailActivity.this, "没有获取到商品收藏状态,请稍等", Toast.LENGTH_SHORT).show(); ll_add_collect.setEnabled(true); break; } if (isLogin) { collection(); } else { ll_add_collect.setEnabled(true); isClick = 3; Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); Toast.makeText(GoodsDetailActivity.this, "请先登录板栗快省账号", Toast.LENGTH_SHORT).show(); } break; case R.id.ll_copy_link: if (!LoginAndInviteStatusUtil.acessNext(getApplicationContext(), UserUtil.getUid(getApplicationContext()) + "", true)) return; copyLink = true; startShare(isLogin); break; //分享奖金 case R.id.ll_share_gain: if (!LoginAndInviteStatusUtil.acessNext(getApplicationContext(), UserUtil.getUid(getApplicationContext()) + "", true)) return; copyLink = false; startShare(isLogin); break; //领券 case R.id.fl_receive_coupon: if (mInfo == null || mInfo.getGoods() == null) return; long cTime1 = System.currentTimeMillis(); if (cTime1 - lastBuyTimeClick < 500) { lastBuyTimeClick = cTime1; break; } lastBuyTimeClick = cTime1; GoodsCustomEvent.goodsDetailCouponClick(this); break; case R.id.tv_big_btn: case R.id.fl_buy: if (!LoginAndInviteStatusUtil.acessNext(getApplicationContext(), UserUtil.getUid(getApplicationContext()) + "", true)) return; if (mInfo == null || mInfo.getGoods() == null) return; long cTime2 = System.currentTimeMillis(); if (cTime2 - lastBuyTimeClick < 500) { lastBuyTimeClick = cTime2; break; } lastBuyTimeClick = cTime2; GoodsCustomEvent.goodsDetailBuyCommon(this); buyOrGainCoupon(isLogin); break; case R.id.fl_back_face: finish(); break; case R.id.tv_net_setting: startActivity(new Intent(Settings.ACTION_SETTINGS)); break; case R.id.tv_refresh: startActivity(new Intent(Settings.ACTION_SETTINGS)); break; //查看宝贝详情 case R.id.fl_goods_detail: if (mInfo == null || mInfo.getGoods() == null) return; if (isSpread) { webView.setVisibility(View.GONE); // ll_imgs.removeAllViews(); iv_imgtext_status.setImageDrawable(getResources().getDrawable(R.drawable.ic_detail_img_close)); } else { webView.setVisibility(View.VISIBLE); iv_imgtext_status.setImageDrawable(getResources().getDrawable(R.drawable.ic_detail_img_open)); // getImgText(); } isSpread = !isSpread; break; case R.id.tv_shop_see: if (mInfo == null || mInfo.getGoods() == null) return; GoodsCustomEvent.goodsDetailShopDetail(GoodsDetailActivity.this); if (mInfo != null && (!StringUtils.isEmpty(mInfo.getGoods().getShopInfo().getShopLink()))) { Intent intent = new Intent(GoodsDetailActivity.this, ShareBrowserActivity.class); intent.putExtra("url", mInfo.getGoods().getShopInfo().getShopLink()); intent.putExtra("title", mInfo.getGoods().getShopInfo().getShopName()); startActivity(intent); } PushEventData info = new PushEventData(); info.setShopUrl(mInfo.getGoods().getShopInfo().getShopLink()); Gson gson = new GsonBuilder().serializeNulls().create(); String data = gson.toJson(info); GoldPushEventRequest.request(GoodsDetailActivity.this, "inShop", data); break; case R.id.fl_command_copy: if (isLogin) commandCopy(); else commandCopyHint(); break; case R.id.iv_footermark: startActivity(new Intent(GoodsDetailActivity.this, MyFootmarkActivity.class)); break; case R.id.ll_same: if (mInfo == null || mInfo.getGoods() == null) return; Intent intent = new Intent(this, SearchResultActivity.class); intent.putExtra("content", mInfo.getGoods().getTitle()); startActivity(intent); break; } } private void jumpDetail() { Intent intent; if ((!StringUtils.isEmpty(mInfo.getGoods().getOtherInfo().getRewardCoupon().getJumpDetail().getActivity()))) { try { intent = new Intent(this, Class.forName(mInfo.getGoods().getOtherInfo().getRewardCoupon().getJumpDetail().getActivity())); } catch (Exception e) { e.printStackTrace(); return; } if (mInfo.getGoods().getOtherInfo().getRewardCoupon().getParams() != null) { @SuppressWarnings("unchecked") Iterator<String> its = mInfo.getGoods().getOtherInfo().getRewardCoupon().getParams().keySet().iterator(); while (its.hasNext()) { String key = its.next(); String value = mInfo.getGoods().getOtherInfo().getRewardCoupon().getParams().getString(key); intent.putExtra(key, value); } } startActivity(intent); } } /* *领券提示 */ private void receiveCouponHint(final String couponUrl) { final SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); boolean receiveCouponHint = sp.getBoolean("receiveCouponHint", true); if (!receiveCouponHint) { receiveCoupon(couponUrl); } else { ReceiveCouponHintDialog.Builder builder = new ReceiveCouponHintDialog.Builder(GoodsDetailActivity.this); builder.setMessage("未登录无返利,确定免费领券?").setTitle("温馨提示") .setPositiveButton("去领券", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface cDialog, int which) { cDialog.dismiss(); SharedPreferences.Editor editor = sp.edit(); editor.putBoolean("receiveCouponHint", false); editor.commit(); receiveCoupon(couponUrl); } }) .setNegativeButton("去登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); isClick = 1; dialog.dismiss(); } }).create().show(); } } private void receiveCoupon(String couponUrl) { if (ApkUtil.checkAPP(GoodsDetailActivity.this, "com.taobao.taobao")) { alibcShowParams = new AlibcShowParams(); alibcShowParams.setOpenType(OpenType.Native); } else { alibcShowParams = new AlibcShowParams(); alibcShowParams.setOpenType(OpenType.Auto); } alibcTaokeParams = new AlibcTaokeParams("", "", ""); alibcTaokeParams.setPid(BuXinConstant.BAICHUAN_PID); alibcTaokeParams.setAdzoneid(BuXinConstant.BAICHUAN_ADZONE_ID); alibcTaokeParams.pid = BuXinConstant.BAICHUAN_PID; alibcTaokeParams.adzoneid = BuXinConstant.BAICHUAN_ADZONE_ID; alibcTaokeParams.extraParams = new HashMap<>(); alibcTaokeParams.extraParams.put("taokeAppkey", BuXinConstant.TAO_BAO_KE_KEY); exParams = new HashMap<>(); exParams.put(AlibcConstants.ISV_CODE, "appisvcode"); exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改 if (!StringUtils.isEmpty(couponUrl)) { jumpWeb(couponUrl); } else { AlibcDetailPage basePage = new AlibcDetailPage(goodsId); jumpNative(basePage); } boolean isLogin = getSharedPreferences("user", MODE_PRIVATE) .getBoolean("isLogin", false); String msg = "购买后有返利,分享后有奖金"; if (!isLogin) { msg = "未登录,无返利"; } if (dialog == null) { JumpTaoBaoDialog.Builder builder1 = new JumpTaoBaoDialog.Builder(GoodsDetailActivity.this); builder1.setMessage(msg); builder1.setPlatform(1); dialog = builder1.create(); } else { if (dialog != null && dialog.isShowing()) dialog.dismiss(); } dialog.show(); isClick = 0; timer();//5秒超时关闭 弹窗 } private void recieveCoupon(CouponInfo couponInfo) { if (couponInfo == null) return; boolean isLogin = getSharedPreferences("user", MODE_PRIVATE) .getBoolean("isLogin", false); if (!isLogin) { receiveCouponHint(couponInfo.getLink()); } else { if (!LoginAndInviteStatusUtil.acessNext(getApplicationContext(), UserUtil.getUid(getApplicationContext()) + "", true)) return; if (couponInfo.isShopCoupon()) { receiveCoupon(couponInfo.getLink()); } else buyOrGainCoupon(isLogin); } } /* *领券提示 */ private void commandCopyHint() { final SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); boolean commandHint = sp.getBoolean("receiveCouponHint", true); if (!commandHint) { commandCopy(); } else { ReceiveCouponHintDialog.Builder builder = new ReceiveCouponHintDialog.Builder(GoodsDetailActivity.this); builder.setMessage("未登录无返利,确定免费领券?").setTitle("温馨提示") .setPositiveButton("去领券", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface cDialog, int which) { cDialog.dismiss(); SharedPreferences.Editor editor = sp.edit(); editor.putBoolean("receiveCouponHint", false); editor.commit(); commandCopy(); } }) .setNegativeButton("去登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); dialog.dismiss(); isClick = 8; } }).create().show(); } } private void commandCopy() { ClipboardUtil.copy(getApplicationContext(), mInfo.getGoods().getCouponInfo().getToken()); Toast.makeText(GoodsDetailActivity.this, "淘口令复制成功", Toast.LENGTH_SHORT).show(); } private void setPosition(int position) { tv_top_title1.setTextColor(position == 1 ? getResources().getColor(R.color.main_text_color) : getResources().getColor(R.color.black2)); tv_top_title1.setTypeface(position == 1 ? Typeface.defaultFromStyle(Typeface.BOLD) : Typeface.defaultFromStyle(Typeface.NORMAL)); v_1.setVisibility(position == 1 ? View.VISIBLE : View.GONE); tv_top_title2.setTextColor(position == 2 ? getResources().getColor(R.color.main_text_color) : getResources().getColor(R.color.black2)); tv_top_title2.setTypeface(position == 2 ? Typeface.defaultFromStyle(Typeface.BOLD) : Typeface.defaultFromStyle(Typeface.NORMAL)); v_2.setVisibility(position == 2 ? View.VISIBLE : View.GONE); tv_top_title3.setTextColor(position == 3 ? getResources().getColor(R.color.main_text_color) : getResources().getColor(R.color.black2)); tv_top_title3.setTypeface(position == 3 ? Typeface.defaultFromStyle(Typeface.BOLD) : Typeface.defaultFromStyle(Typeface.NORMAL)); v_3.setVisibility(position == 3 ? View.VISIBLE : View.GONE); tv_top_title4.setTextColor(position == 4 ? getResources().getColor(R.color.main_text_color) : getResources().getColor(R.color.black2)); tv_top_title4.setTypeface(position == 4 ? Typeface.defaultFromStyle(Typeface.BOLD) : Typeface.defaultFromStyle(Typeface.NORMAL)); v_4.setVisibility(position == 4 ? View.VISIBLE : View.GONE); } private void buyOrGainCoupon(boolean isLogin) { isClick = 1; isTBStartBind = false; if (!isLogin) { Toast.makeText(GoodsDetailActivity.this, "请先登录板栗快省账号", Toast.LENGTH_LONG).show(); Intent intent = new Intent(GoodsDetailActivity.this, LoginSelectActivity.class); intent.putExtra("from", "淘宝"); startActivity(intent); return; } // if (!AlibcLogin.getInstance().isLogin()) { // tbLogin(); // return; // } getTaoBaoH5AuthInfo("zigou"); // getTBLinkInfo(getSharedPreferences("user", MODE_PRIVATE).getString("uid", "")); } private void goBuy() { Log.e("mResult", "goBuy():type---" + type); Log.e("mResult", "isNative:" + isNative); isClick = 0; if (mInfo != null && mInfo.getGoods() != null) { GoodsCustomEvent.goodsDetailBuyToTaobao(GoodsDetailActivity.this, mInfo.getGoods().getCouponInfo() == null ? "无券" : "有券"); if (mInfo.getGoods().isHasCoupon()) { mInfo.getGoods().getCouponInfo().setToken(couponUrl); } showGoods(); } } /** * 打开指定链接 */ public void showGoods() { // Log.e("mResult", "showGoods():type---" + type); if (TextUtils.isEmpty(goodsId)) { Toast.makeText(GoodsDetailActivity.this, "暂未获取到商品信息", Toast.LENGTH_SHORT).show(); return; } alibcShowParams = new AlibcShowParams(); if (!isNative) { alibcShowParams.setOpenType(OpenType.Auto); } else if (ApkUtil.checkAPP(GoodsDetailActivity.this, "com.taobao.taobao")) { alibcShowParams.setOpenType(OpenType.Native); } else { alibcShowParams.setOpenType(OpenType.Auto); } alibcShowParams.setBackUrl("alisdk://"); alibcTaokeParams = new AlibcTaokeParams("", "", ""); if (tInfo != null) { alibcTaokeParams = new AlibcTaokeParams("", "", ""); alibcTaokeParams.setPid(tInfo.getPid()); alibcTaokeParams.setAdzoneid(tInfo.getAdZoneId()); alibcTaokeParams.pid = tInfo.getPid(); alibcTaokeParams.adzoneid = tInfo.getAdZoneId(); alibcTaokeParams.extraParams = new HashMap<>(); alibcTaokeParams.extraParams.put("taokeAppkey", tInfo.getAppKey()); } exParams = new HashMap<>(); exParams.put(AlibcConstants.ISV_CODE, "appisvcode"); exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改 if (type == 1) { // Log.e("mResult", (!StringUtils.isEmpty(couponUrl)) ? couponUrl : clickUrl); if (!StringUtils.isEmpty(clickUrl) || !StringUtils.isEmpty(couponUrl)) { String url = (!StringUtils.isEmpty(couponUrl)) ? couponUrl : clickUrl; jumpWeb(url); } } else { if (!StringUtils.isEmpty(clickUrl) || !StringUtils.isEmpty(couponUrl)) { String url = (!StringUtils.isEmpty(couponUrl)) ? couponUrl : clickUrl; jumpWeb(url); } else { Toast.makeText(GoodsDetailActivity.this, "进入详情", Toast.LENGTH_LONG).show(); AlibcDetailPage basePage = new AlibcDetailPage(goodsId); // AlibcTrade.openByBizCode(GoodsDetailActivity.this, basePage, alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback("")); jumpNative(basePage); } } boolean isLogin = getSharedPreferences("user", MODE_PRIVATE) .getBoolean("isLogin", false); String msg = "购买后有返利,分享后有奖金"; if (!isLogin) { msg = "未登录,无返利"; } if (dialog == null) { JumpTaoBaoDialog.Builder builder = new JumpTaoBaoDialog.Builder(GoodsDetailActivity.this); builder.setPlatform(1).setMessage(msg); dialog = builder.create(); } else { if (dialog != null && dialog.isShowing()) dialog.dismiss(); } dialog.show(); isClick = 0; timer();//5秒超时关闭 弹窗 } /** * 主要是用于 弹窗拉起淘宝弹窗卡死延时关闭 5秒超时 */ private void timer() { new Thread(new Runnable() { public void run() { try { Thread.sleep(5000); handler1.sendEmptyMessage(0); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } Handler handler1 = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (dialog != null) { if (dialog.isShowing()) { dialog.dismiss(); } else { dialog.cancel(); dialog = null; } } else { dialog = null; } } }; private void getTaobaoShareLink() { final ShapeLoadingDialog pb = new ShapeLoadingDialog.Builder(this).build(); pb.show(); Log.e("mResult", "getTaobaoShareLink()"); String uid = getSharedPreferences("user", MODE_PRIVATE).getString("uid", "0"); ShoppingApi.createShareLink(this, uid, mInfo.getGoods().getGoodsId(), mInfo.getGoods().getGoodsType() + "", from, null, null, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { JSONObject data = jsonObject.optJSONObject("data"); SingleGoodsShareInfo shareInfo = new Gson().fromJson(data.toString(), SingleGoodsShareInfo.class); shareInfo.setGoodsInfo(mInfo.getGoods()); Intent intent = new Intent(GoodsDetailActivity.this, ShareGoodsImageActivity31.class); intent.putExtra("shareInfo", shareInfo); if (copyLink) { ClipboardUtil.copy(getApplicationContext(), shareInfo.getCommentText()); Toast.makeText(GoodsDetailActivity.this, "复制成功", Toast.LENGTH_SHORT).show(); } else startActivity(intent); } } @Override public void onFinish() { super.onFinish(); pb.dismiss(); } }); } /** * 添加到收藏 */ private void collection() { String uid = getSharedPreferences("user", MODE_PRIVATE).getString("uid", "0"); ShoppingApi.collectionGoods(GoodsDetailActivity.this, goodsId, uid, isCollect ? "2" : "1", mInfo.getGoods().getGoodsType() + "", new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { isCollect = !isCollect; if (isCollect) { GoodsCustomEvent.goodsDetailCollect(GoodsDetailActivity.this); setCollectionData(true); } else { GoodsCustomEvent.goodsDetailCollectCancel(GoodsDetailActivity.this); setCollectionData(false); } // SingleToast.showToast(GoodsDetailActivity.this, jsonObject.optString("data")); Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("data"), Toast.LENGTH_SHORT).show(); } else { // SingleToast.showToast(GoodsDetailActivity.this, jsonObject.optString("msg")); Toast.makeText(GoodsDetailActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show(); } } @Override public void onFinish() { super.onFinish(); ll_add_collect.setEnabled(true); } }); } /** * 一键发单 */ private void sendOrder() { GoodsDetailUtil.sendOrder(this, mInfo, goodsId, ll_send_order); } private boolean isFirstLogin = true; private void tbLogin() { final AlibcLogin alibcLogin = AlibcLogin.getInstance(); Log.e("detail", "tbLogin--" + alibcLogin.isLogin()); // if (!alnibcLogin.isLogin()) { isTBStartBind = true; alibcLogin.showLogin(new AlibcLoginCallback() { @Override public void onSuccess(int i, String s, String s1) { SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("TrolleyTransformationLink", ""); editor.commit(); // boolean isLogin = sp.getBoolean("isLogin", false); // if (isLogin) { // if (AlibcLogin.getInstance().isLogin()) { // TrolleyTransformationLink transformationLink = new TrolleyTransformationLink(GoodsDetailActivity.this); // transformationLink.getTaoBaoCartConfig("login"); // } // } if (isClick == 4) { startActivity(new Intent(GoodsDetailActivity.this, ShoppingTrolleyActivity.class)); isClick = 0; } bindInfo(); } @Override public void onFailure(int code, String msg) { if (isFirstLogin) { InitAlibcSdk.init(); isFirstLogin = false; } isTBStartBind = false; isClick = 0; Toast.makeText(GoodsDetailActivity.this, "登录失败,请稍候再试", Toast.LENGTH_LONG).show(); MobclickAgent.reportError(GoodsDetailActivity.this, "GoodsDetailActivity---code:" + code + "---msg:" + msg); } }); // } } /** * 绑定淘宝账号 * * @param uid */ boolean isTBStartBind = false; private void bindInfo() { if (isClick == 1 || isClick == 2) { Log.e("detail", authLink); if (!StringUtils.isEmpty(authLink)) { GoodsCustomEvent.goodsDetailTaobaoAuth(GoodsDetailActivity.this, isClick == 1 ? "购买" : "分享"); // AlibcTrade.openByUrl(GoodsDetailActivity.this, "", authLink, null, new WebViewClient(), // new WebChromeClient(), alibcShowParams, null, null, // new MiDuoTradeCallback("")); // AlibcTradeUtil.openByUrl(GoodsDetailActivity.this, authLink, null, new WebViewClient(), // new WebChromeClient(), alibcShowParams, null, null); AlibcTradeUtil.openAuthLink(GoodsDetailActivity.this, authLink); } isFirst = false; } Log.e("detail", "bindInfo--isClick---" + isClick); isTBStartBind = false; } private void bindInfo2() { SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE); String uid = sp.getString("uid", ""); getTBLinkInfo(uid); isTBStartBind = false; } /** * 是否需要淘宝授权 * * @param source */ String authLink; String orderJS; String orderUrl; ShapeLoadingDialog pd; private void getTaoBaoH5AuthInfo(final String source) { if (pd == null) pd = new ShapeLoadingDialog.Builder(this).build(); if (!pd.isShowing()) pd.show(); Log.e("detail", "getTaoBaoH5AuthInfo--" + source); String uid = getSharedPreferences("user", MODE_PRIVATE).getString("uid", null); ShoppingApi.getTaoBaoAuthInfo(GoodsDetailActivity.this, uid, goodsId, source, true, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optInt("code") == 0) { isClick = source.equalsIgnoreCase("share") ? 2 : source.equalsIgnoreCase("zigou") ? 1 : 0; authLink = jsonObject.optJSONObject("data").getString("authLink"); orderJS = jsonObject.optJSONObject("data").getString("orderJS"); orderUrl = jsonObject.optJSONObject("data").getString("orderUrl"); Log.e("detail", "authLink--" + authLink); if (!StringUtils.isEmpty(authLink)) { if (AlibcLogin.getInstance().isLogin()) { bindInfo(); } else { tbLogin(); } } pd.dismiss(); } else if (jsonObject.optInt("code") == 1) { if (source.equalsIgnoreCase("share")) { getTaobaoShareLink(); pd.dismiss(); } else if (source.equalsIgnoreCase("zigou")) { getTBLinkInfo(getSharedPreferences("user", MODE_PRIVATE).getString("uid", "")); } } else { pd.dismiss(); } } @Override public void onFinish() { super.onFinish(); isFirst = false; } @Override public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { super.onFailure(statusCode, headers, responseString, throwable); // SingleToast.showToast(GoodsDetailActivity.this, "请求失败"); pd.dismiss(); Toast.makeText(GoodsDetailActivity.this, "请求失败", Toast.LENGTH_SHORT).show(); } }); } private void getTaoBaoH5AuthInfo2(final String source) { String uid = getSharedPreferences("user", MODE_PRIVATE).getString("uid", null); ShoppingApi.getTaoBaoAuthInfo(GoodsDetailActivity.this, uid, goodsId, source, false, new BasicTextHttpResponseHandler() { @Override public void onSuccessPerfect(int statusCode, Header[] headers, final JSONObject jsonObject) throws Exception { // Log.e("mResult", "getTaoBaoH5AuthInfo2:code:" + jsonObject.optInt("code")); if (jsonObject.optInt("code") == 1) { if (source.equalsIgnoreCase("share")) { getTaobaoShareLink(); } else if (source.equalsIgnoreCase("zigou")) { // Log.e("mResult", "getTaoBaoH5AuthInfo2():isLogin---" + AlibcLogin.getInstance().isLogin()); if (AlibcLogin.getInstance().isLogin()) { getTBLinkInfo(getSharedPreferences("user", MODE_PRIVATE).getString("uid", "")); } else { tbBuyLogin(); } } } else { // Log.e("mResult", "getTaoBaoH5AuthInfo2:" + jsonObject.optString("msg")); runOnUiThread(new Runnable() { @Override public void run() { String msg = jsonObject.optString("msg"); if (!StringUtils.isEmpty(msg)) { // SingleToast.showToast(GoodsDetailActivity.this, msg); Toast.makeText(GoodsDetailActivity.this, msg, Toast.LENGTH_SHORT).show(); } } }); } } @Override public void onFinish() { super.onFinish(); if (source.equalsIgnoreCase("share")) { isClick = 0; } isFirst = true; } }); } private void tbBuyLogin() { isTBStartBind = true; // Log.e("mResult", "开始登录"); AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() { @Override public void onSuccess(int i, String s, String s1) { bindInfo2(); } @Override public void onFailure(int i, String s) { isClick = 0; // Log.e("mResult", "登录失败"); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(GoodsDetailActivity.this, "登录失败,请稍候再试", Toast.LENGTH_LONG).show(); } }); } }); } class ImageAdapter extends PagerAdapter { private List<String> cList; public ImageAdapter(List<String> list, Context context) { super(); this.cList = list; } @Override public int getCount() { return cList == null ? 0 : cList.size(); } @Override public Object instantiateItem(ViewGroup container, final int position) { View view = LayoutInflater.from(GoodsDetailActivity.this) .inflate(R.layout.item_goods_detail_top_img, null); ImageView iv = view.findViewById(R.id.iv_goods_img); // Glide.with(mContext).load(cList.get(position)).error(R.drawable.ic_goods_default).placeholder(R.drawable.ic_goods_default).into(iv); ImageLoader.getInstance().displayImage(cList.get(position), iv, options);//暂时注释 iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { GoodsCustomEvent.goodsDetailDetailImgs(GoodsDetailActivity.this); enlargeImage(position, cList); } }); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public CharSequence getPageTitle(int position) { return cList.get(position) + ""; } private void enlargeImage(int position, final List<String> list) { ArrayList<String> cList = (ArrayList<String>) list; Intent intent = new Intent(GoodsDetailActivity.this, BigImageActivity.class); intent.putExtra("position", position); intent.putExtra("imgList", new Gson().toJson(ImageShowEntity.create(cList))); startActivityForResult(intent, 0); // v_cover.setVisibility(View.VISIBLE); // //透明动画 // ObjectAnimator animator = ObjectAnimator.ofFloat(v_cover, "alpha", 0F, 1F); // animator.setDuration(150);//400 // //为动画设置监听 // animator.addListener(new AnimatorListenerAdapter() { // @Override // public void onAnimationEnd(Animator animation) { // super.onAnimationEnd(animation); // v_cover.setVisibility(View.GONE); // } // }); // animator.start(); } } private void setCollectionData(boolean collected) { if (collected) { iv_like_state.setImageResource(R.drawable.icon_collected); tv_like.setText("收藏"); // tv_like.setTextColor(Color.parseColor("#E5005C")); } else { iv_like_state.setImageResource(R.drawable.icon_un_collected); tv_like.setText("收藏"); tv_like.setTextColor(Color.parseColor("#333333")); } } /** * 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络 * * @param state */ private void requestState(int state) { fl_content.setVisibility(state == 0 ? View.VISIBLE : View.GONE); ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE); ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE); ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE); } class ShareExampleAdapter extends BaseAdapter { List<ShareUser> mList; public ShareExampleAdapter(List<ShareUser> list) { mList = list; } @Override public int getCount() { return mList == null ? 0 : mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View view, ViewGroup parent) { Holder holder = null; if (view == null) { holder = new Holder(); view = LayoutInflater.from(GoodsDetailActivity.this).inflate(R.layout.item_share_example, null); holder.iv_portrait = view.findViewById(R.id.iv_portrait); holder.tv_name = view.findViewById(R.id.tv_name); holder.tv_des = view.findViewById(R.id.tv_des); holder.iv_gift_img = view.findViewById(R.id.iv_gift_img); view.setTag(holder); } else { holder = (Holder) view.getTag(); } Glide.with(GoodsDetailActivity.this).load(mList.get(position).getPicUrl()).placeholder(R.drawable.ic_default_portrait_light) .error(R.drawable.ic_default_portrait_light) .transform(new GlideCircleTransform(GoodsDetailActivity.this)).into(holder.iv_portrait); Glide.with(GoodsDetailActivity.this).load(mList.get(position).getShareBonusPic()).into(holder.iv_gift_img); holder.tv_name.setText(mList.get(position).getName()); String str = mList.get(position).getMsg(); int count = str.indexOf("奖金"); SpannableStringBuilder builder = new SpannableStringBuilder(str); builder.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.detail_sharelist_reward_num)) , count, str.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE); holder.tv_des.setText(builder); return view; } class Holder { ImageView iv_portrait; TextView tv_name; TextView tv_des; ImageView iv_gift_img; } } private void initPopubWindow(JSONObject jsonObject) { final String helpLink = jsonObject.optString("helpLink"); View customView = getLayoutInflater().inflate(R.layout.item_show_free_single_coupon, null, false); // 创建PopupWindow实例,200,150分别是宽度和高度 float height = SystemCommon.getScreenHeight(this); final PopupWindow pw_free_single_ticket = new PopupWindow(customView, ViewGroup.LayoutParams.MATCH_PARENT, (int) (height * 0.75), true); // 设置动画效果 [R.style.AnimationFade 是自己事先定义好的] // pw_filter.setAnimationStyle(R.style.pop_multiple); pw_free_single_ticket.setTouchable(true); pw_free_single_ticket.setOutsideTouchable(true); pw_free_single_ticket.setFocusable(false); pw_free_single_ticket.setAnimationStyle(R.style.bottomstyle); TextView tv_free_single_coupon_num = customView.findViewById(R.id.tv_free_single_ticket_num); LinearLayout ll_no_ticket = customView.findViewById(R.id.ll_no_ticket); TextView tv_confirm = customView.findViewById(R.id.tv_confirm); RecyclerView rv_free_single_ticket = customView.findViewById(R.id.rv_free_single_ticket); TextView tv_limit = new TextView(this); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); tv_limit.setLayoutParams(params); tv_limit.setTextColor(Color.parseColor(jsonObject.optJSONObject("tip").optString("fontColor"))); tv_limit.setTextSize(14); tv_limit.setGravity(Gravity.CENTER); tv_limit.setText(jsonObject.optJSONObject("tip").optString("content")); tv_limit.setPadding(0, DimenUtils.dip2px(this, 16), 0, 0); tv_free_single_coupon_num.setText("剩余" + jsonObject.optString("count") + "张免单券"); LinearLayoutManager manager = new LinearLayoutManager(this); rv_free_single_ticket.setLayoutManager(manager); DividerItemDecoration decoration = new DividerItemDecoration(); decoration.setSize(DimenUtils.dip2px(this, 8)); rv_free_single_ticket.addItemDecoration(decoration); Gson gson = new GsonBuilder().serializeNulls().create(); final List<FreeSingleTicket> fList = gson.fromJson(jsonObject.optJSONArray( "list").toString(), new TypeToken<List<FreeSingleTicket>>() { }.getType()); if (fList == null || fList.size() == 0) { rv_free_single_ticket.setVisibility(View.GONE); ll_no_ticket.setVisibility(View.VISIBLE); } else { rv_free_single_ticket.setVisibility(View.VISIBLE); ll_no_ticket.setVisibility(View.GONE); } final FreeSingleTicketAdapter adapter = new FreeSingleTicketAdapter(this, fList, helpLink); rv_free_single_ticket.setAdapter(adapter); adapter.addHeaderView(tv_limit); tv_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pw_free_single_ticket.dismiss(); v_cover1.setVisibility(View.GONE); FreeSingleTicket info = null;//选中的免单券 for (int i = 0; i < adapter.mCBFlag.size(); i++) { if (adapter.mCBFlag.get(i)) { info = fList.get(i); } } if (info != null) { useFreeSingleTicket(info); } } }); pw_free_single_ticket.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { v_cover1.setVisibility(View.GONE); } }); v_cover1.setOnClickListener(new View.OnClickListener() {//设置背景空点击事件 @Override public void onClick(View v) { v_cover1.setVisibility(View.GONE); } }); pw_free_single_ticket.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM, 0, 0); v_cover1.setVisibility(View.VISIBLE); isClick = 0; } @Override protected void onDestroy() { super.onDestroy(); if (timer != null) { timer.cancel(); timer = null; } handler1.sendEmptyMessage(0); toast_dialog.dialog_dismiss(); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); } @Override public void onWbShareCancel() { Toast.makeText(this, "分享取消", Toast.LENGTH_LONG).show(); } @Override public void onWbShareFail() { Toast.makeText(this, "分享失败", Toast.LENGTH_LONG).show(); } @Override public void onWbShareSuccess() { Toast.makeText(this, "分享成功", Toast.LENGTH_LONG).show(); } /** * 返回 是否进入 删除区域 * * @param Width 宽度距离判断(购物车到达指定宽度 true,否则false) * @param Heigh 高度距离判断(购物车到达指定高度 true,否则false) */ @Override public void isReturn(boolean Width, boolean Heigh) { if (Width && Heigh) { acbutton.setVisibility(View.GONE); // img.setVisibility(View.GONE); if (acbutton.getVisibility() == View.GONE) { acbutton.postDelayed(new Runnable() { @Override public void run() { img.setVisibility(View.GONE); // 购物车隐藏 RecordImageTextVideo textVideo = new RecordImageTextVideo(GoodsDetailActivity.this); textVideo.setLocalCart_float(1);//不在显示购物车 } }, 200); } } } /** * 显示状态 * * @param isDrag 移动状态(购物车移动true,停止false) * @param display 是否显示(购物车显示true,隐藏 false) */ @Override public void isDrag(boolean isDrag, boolean display) { //移动中 if (isDrag) { img.setVisibility(View.VISIBLE); } else {//停止移动 if (display) {//显示 img.setVisibility(View.VISIBLE); } else {//隐藏 img.setVisibility(View.GONE); } } } /** * 百川详情页跳转网页 */ private void jumpWeb(String url) { alibcShowParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpBROWER); // AlibcTrade.openByUrl(GoodsDetailActivity.this, "", // url, null, new WebViewClient(), new WebChromeClient(), // alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback("")); AlibcTradeSDK.setTaokeParams(alibcTaokeParams); AlibcTradeUtil.openByUrl(GoodsDetailActivity.this, url, null, new WebViewClient(), new WebChromeClient(), alibcShowParams, alibcTaokeParams, null); } /** * 百川详情页跳转原生 */ private void jumpNative(AlibcBasePage basePage) { AlibcTrade.openByBizCode(GoodsDetailActivity.this, basePage, null, new WebViewClient(), new WebChromeClient(), "", alibcShowParams, alibcTaokeParams, exParams, new MiDuoTradeCallback("")); } } app/src/main/java/com/tejia/lijin/app/util/ui/VIPUIUtil.java
New file @@ -0,0 +1,38 @@ package com.tejia.lijin.app.util.ui; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; import android.widget.TextView; import com.app.hubert.guide.util.ScreenUtils; import com.wpc.library.util.common.DimenUtils; public class VIPUIUtil { public static void setGoodsDetialUserLevelIcon(TextView tv, int level) { //动态改变shape GradientDrawable shape = new GradientDrawable(); int redius = DimenUtils.dip2px(tv.getContext(), 8); shape.setCornerRadii(new float[]{redius, redius, 0, 0, redius, redius, 0, 0}); shape.setOrientation(GradientDrawable.Orientation.BR_TL); switch (level) { case 0: tv.setTextColor(Color.parseColor("#BE4C00")); shape.setColors(new int[]{Color.parseColor("#FFD783")}); break; case 1: tv.setTextColor(Color.parseColor("#FFD6DC")); shape.setColors(new int[]{Color.parseColor("#C3BC51"), Color.parseColor("#FBBF68"), Color.parseColor("#D4B57F")}); break; case 2: tv.setTextColor(Color.parseColor("#949494")); shape.setColors(new int[]{Color.parseColor("#DFDFDF"), Color.parseColor("#F6F6F6"), Color.parseColor("#DFDFDF")}); break; case 3: tv.setTextColor(Color.parseColor("#FFD6DC")); shape.setColors(new int[]{Color.parseColor("#C3F3FF"), Color.parseColor("#F6F6F6"), Color.parseColor("#FFD1D8")}); break; } } } app/src/main/java/com/tejia/lijin/app/util/user/AliyunSmsOneKeyLoginManager.java
New file @@ -0,0 +1,196 @@ package com.tejia.lijin.app.util.user; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.graphics.Color; import android.util.Log; import android.widget.ImageView; import android.widget.Toast; import com.mobile.auth.gatewayauth.AuthUIConfig; import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper; import com.mobile.auth.gatewayauth.ResultCode; import com.mobile.auth.gatewayauth.TokenResultListener; import com.mobile.auth.gatewayauth.model.TokenRet; import com.wpc.library.util.common.DimenUtils; import org.apache.http.Header; import org.json.JSONObject; public class AliyunSmsOneKeyLoginManager { static final String TAG = "AliyunSmsOneKeyLogin"; private Activity activity; private PhoneNumberAuthHelper mPhoneNumberAuthHelper; private String secretInfo; private IOneKeyLoginListener tokenResultListener; public AliyunSmsOneKeyLoginManager(Activity context, String secretInfo) { this.activity = context; this.secretInfo = secretInfo; } private void sdkInit() { mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(activity, new TokenResultListener() { @Override public void onTokenSuccess(String s) { Log.i(TAG, "onTokenSuccess:" + s); TokenRet tokenRet = null; try { tokenRet = TokenRet.fromJson(s); switch (tokenRet.getCode()) { case ResultCode.CODE_ERROR_ENV_CHECK_SUCCESS: Log.i(TAG, "终端环境校验成功:" + s); tokenResultListener.onEnvCheckSuccess(); break; case ResultCode.CODE_START_AUTHPAGE_SUCCESS: Log.i(TAG, "唤起授权页成功:" + s); tokenResultListener.onStartAuthPageSuccess(); break; case ResultCode.CODE_SUCCESS: Log.i(TAG, "获取token成功:" + s); tokenResultListener.onToken(tokenRet.getToken()); mPhoneNumberAuthHelper.setAuthListener(null); break; } } catch (Exception e) { e.printStackTrace(); } } @Override public void onTokenFailed(String s) { Log.i(TAG, "onTokenFailed:" + s); TokenRet tokenRet = null; try { tokenRet = TokenRet.fromJson(s); switch (tokenRet.getCode()) { //用户主动取消 case ResultCode.CODE_ERROR_USER_CANCEL: tokenResultListener.onCancel(); break; case ResultCode.CODE_ERROR_NO_SIM_FAIL: case ResultCode.CODE_ERROR_NO_MOBILE_NETWORK_FAIL: tokenResultListener.onFail("请打开移动网络"); break; default: tokenResultListener.onFail("暂无法使用手机号一键登录"); break; } } catch (Exception e) { e.printStackTrace(); } mPhoneNumberAuthHelper.setAuthListener(null); } }); mPhoneNumberAuthHelper.getReporter().setLoggerEnable(true); mPhoneNumberAuthHelper.setAuthSDKInfo(secretInfo); } /** * 开始获取token */ public void startGetLoginToken() { mPhoneNumberAuthHelper.getLoginToken(activity, 5000); } public void quitLoginPage() { mPhoneNumberAuthHelper.quitLoginPage(); } private void initUI(Activity activity) { int width = DimenUtils.getScreenWidth(activity); int widthDP = DimenUtils.px2dip(activity, width); AuthUIConfig uiCOnfig = new AuthUIConfig.Builder() .setPageBackgroundPath("shape_login_onkey_bg") .setNavText("") .setNavColor(Color.WHITE) .setNavHidden(false) .setNavReturnImgPath("ic_login_close") .setNavReturnImgWidth(22) .setNavReturnImgHeight(22) .setNavReturnScaleType(ImageView.ScaleType.FIT_XY) .setWebNavColor(Color.BLACK) .setWebNavReturnImgPath("ic_back_two") .setWebViewStatusBarColor(Color.WHITE) .setStatusBarColor(Color.WHITE) .setLogoWidth(147) .setLogoHeight(36) .setLogoImgPath("ic_login_logo") .setLogoOffsetY(24 - 10) .setSloganOffsetY(171 - 10) .setSloganTextSize(12) .setSloganTextColor(Color.parseColor("#F804F5")) .setLogBtnText("⼀键登录") .setLogBtnTextSize(17) .setLogBtnTextColor(Color.parseColor("#F4DE4A")) .setLogBtnBackgroundPath("shape_login_btn") .setLogBtnOffsetY(229 - 10) .setLogBtnHeight(44) .setDialogWidth(305 * widthDP / 375) .setDialogHeight(454) .setNavColor(Color.RED) .setSwitchAccHidden(true) .setNumberColor(Color.parseColor("#0052F6")) .setNumberSize(36) .setNumFieldOffsetY(128 - 10) .setAppPrivacyOne("《用户服务协议》", BeibeiConstant.USER_AGREEMENT) .setAppPrivacyTwo("《隐私政策》", BeibeiConstant.PRIVACY_POLICY) .setAppPrivacyColor(Color.parseColor("#B3B8D3"), Color.parseColor("#51B3FF")) .setPrivacyBefore("登录即表示同意") .setPrivacyEnd("") .setCheckedImgPath("ic_login_privacy_checked") .setPrivacyTextSize(11) .setPrivacyState(true) .setVendorPrivacyPrefix("《") .setVendorPrivacySuffix("》") .create(); mPhoneNumberAuthHelper.setAuthUIConfig(uiCOnfig); } public void init(IOneKeyLoginListener tokenResultListener) { this.tokenResultListener = tokenResultListener; sdkInit(); initUI(activity); } public void checkEnv() { //检测环境 mPhoneNumberAuthHelper.checkEnvAvailable(2); } public interface IOneKeyLoginListener { public void onFail(String st); public void onCancel(); public void onEnvCheckSuccess(); public void onStartAuthPageSuccess(); public void onToken(String token); } } app/src/main/res/drawable-xhdpi/ic_close_login.png
app/src/main/res/drawable-xhdpi/ic_login_logo.png
app/src/main/res/drawable-xhdpi/icon_login_qq.png
app/src/main/res/drawable-xhdpi/icon_login_wx.png
app/src/main/res/drawable/selector_login_btn.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/shape_login_gain_sms" android:state_enabled="true"></item> <item android:drawable="@drawable/shape_login_gain_sms_invalid" android:state_enabled="false"></item> </selector> app/src/main/res/drawable/shape_convert_link_btn.xml
@@ -1,6 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/theme" /> <corners android:radius="100dp"></corners> <solid android:color="#fff10865" /> <gradient android:type="linear" android:useLevel="true" android:startColor="#e0ff2a3e" android:endColor="#e0ff227b" android:angle="180" /> <corners android:topLeftRadius="18dp" android:topRightRadius="18dp" android:bottomLeftRadius="18dp" android:bottomRightRadius="18dp" /> </shape> app/src/main/res/drawable/shape_copy_link_btn.xml
New file @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="0" android:endColor="#e0ff227b" android:startColor="#e0ff2a3e" android:type="linear" android:useLevel="true" /> <corners android:bottomLeftRadius="18dp" android:bottomRightRadius="18dp" android:topLeftRadius="18dp" android:topRightRadius="18dp" /> </shape> app/src/main/res/drawable/shape_copy_link_content_bg.xml
New file @@ -0,0 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff" /> <corners android:bottomLeftRadius="13dp" android:bottomRightRadius="13dp" android:topLeftRadius="13dp" android:topRightRadius="13dp" /> </shape> app/src/main/res/drawable/shape_go_buy.xml
New file @@ -0,0 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <padding android:bottom="2dp" android:top="2dp"></padding> <corners android:bottomRightRadius="40dp" android:topRightRadius="40dp" /> <solid android:color="#FF2C4A" /> </shape> app/src/main/res/drawable/shape_go_fanli.xml
@@ -2,10 +2,10 @@ <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:bottomRightRadius="40dp" android:topRightRadius="40dp" /> android:bottomLeftRadius="40dp" android:topLeftRadius="40dp" /> <padding android:bottom="2dp" android:top="2dp"></padding> <solid android:color="@color/theme" /> <solid android:color="#55B00B" /> </shape> app/src/main/res/drawable/shape_goods_detail_hongbao_bg.xml
New file @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#55B00B" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> </shape> app/src/main/res/drawable/shape_goods_detail_hongbao_detail_bg.xml
New file @@ -0,0 +1,50 @@ <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- <item android:width="327dp" android:height="33dp">--> <!-- <shape android:shape="rectangle">--> <!-- <gradient--> <!-- android:angle="90"--> <!-- android:endColor="#469D00"--> <!-- android:startColor="#5FD400" />--> <!-- <corners android:radius="7dp" />--> <!-- </shape>--> <!-- </item>--> <!-- <item--> <!-- android:bottom="1dp"--> <!-- android:left="0.5dp"--> <!-- android:right="0.5dp"--> <!-- android:top="1dp">--> <!-- <shape android:shape="rectangle">--> <!-- <gradient--> <!-- android:angle="270"--> <!-- android:endColor="#55B00B"--> <!-- android:startColor="#55B00B" />--> <!-- <corners android:radius="7dp" />--> <!-- </shape>--> <!-- </item>--> <item> <shape android:shape="rectangle"> <gradient android:angle="45" android:endColor="#55B00B" android:shadowColor="#000000" android:shadowDx="-0" android:shadowDy="-1" android:startColor="#55B00B" /> <corners android:radius="7dp" /> </shape> </item> </layer-list> app/src/main/res/drawable/shape_goods_detail_hongbao_high_level_bg.xml
New file @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffff415e" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> </shape> app/src/main/res/drawable/shape_goods_detail_item_bg.xml
New file @@ -0,0 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"></padding> </shape> app/src/main/res/drawable/shape_goods_detail_rights_type_coupon_bg.xml
New file @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffef99" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> </shape> app/src/main/res/drawable/shape_goods_detail_rights_type_coupon_bottom_bg.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FF8400" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" /> </shape> app/src/main/res/drawable/shape_goods_detail_rights_type_hongbao_bg.xml
New file @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFDAE0" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> </shape> app/src/main/res/drawable/shape_goods_detail_rights_type_hongbao_bottom_bg.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FF415E" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" /> </shape> app/src/main/res/drawable/shape_login_gain_sms_invalid.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#CBCBCB" /> <corners android:radius="30dp" /> </shape> app/src/main/res/drawable/shape_smart_search_top.xml
@@ -1,15 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#ffffffff" /> <gradient android:angle="270" android:endColor="@color/theme" android:startColor="@color/theme" android:type="linear" /> <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" android:topLeftRadius="13dp" android:topRightRadius="13dp" /> <gradient android:type="linear" android:useLevel="true" android:startColor="#e0ff2a3e" android:endColor="#e0ff227b" android:angle="180" /> <corners android:topLeftRadius="13dp" android:topRightRadius="13dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" /> </shape> app/src/main/res/layout/activity_goods_detail_new.xml
New file @@ -0,0 +1,1080 @@ <?xml version="1.0" encoding="utf-8"?> <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"> <FrameLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <com.wpc.library.widget.RatioLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" app:ratio="1"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <androidx.viewpager.widget.ViewPager android:id="@+id/vp_goods_img" android:layout_width="match_parent" android:layout_height="match_parent"></androidx.viewpager.widget.ViewPager> <TextView android:id="@+id/tv_page_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="20dp" android:background="@drawable/shape_black_corner" android:paddingLeft="10dp" android:paddingTop="2dp" android:paddingRight="10dp" android:paddingBottom="2dp" android:textColor="@color/white" /> </FrameLayout> </com.wpc.library.widget.RatioLayout> <include layout="@layout/item_yellow_notice" /> </LinearLayout> <LinearLayout 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:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/iv_goods_type" android:layout_width="wrap_content" android:layout_height="15dp" android:layout_gravity="left|center_vertical" android:src="@drawable/ic_tmall"></ImageView> <TextView android:id="@+id/tv_sales_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:text="月销 8569" android:textColor="#ff888888" android:textSize="13sp" /> </FrameLayout> <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="春装2021年新款女中袖上衣v领洋气半袖针织衫不规则百搭打底毛衣" android:textColor="#ff000000" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_address" 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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发货地" android:textColor="#ff888888" android:textSize="13sp" /> <TextView android:id="@+id/tv_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:text="重庆市·江北区" android:textColor="#ff000000" android:textSize="13sp" /> </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.wpc.library.widget.MyGridView android:id="@+id/gv_rights_type" android:layout_width="match_parent" android:layout_height="wrap_content" android:horizontalSpacing="10dp" android:numColumns="3" android:verticalSpacing="10dp"></com.wpc.library.widget.MyGridView> </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"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_goods_detail_hongbao_high_level_bg"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="64dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingLeft="12dp" android:paddingRight="12dp"> <TextView android:id="@+id/tv_sub_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="19dp" android:text="¥8.88" android:textColor="#ffffffff" android:textSize="12sp" /> <View android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <TextView android:id="@+id/tv_final_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="¥28.9" android:textColor="#ffffffff" android:textSize="12sp" /> </LinearLayout> <TextView android:id="@+id/tv_more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="3dp" android:text="更多"> </TextView> </FrameLayout> <LinearLayout android:id="@+id/ll_hongbao_detail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="3.5dp" android:layout_marginRight="3.5dp" android:layout_marginBottom="3.5dp" android:paddingLeft="20dp" android:paddingRight="20dp"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <LinearLayout android:id="@+id/ll_money_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_0" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_1" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_2" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="=" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_actual_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left|top" android:gravity="center_vertical"> <ImageView android:id="@+id/iv_level" android:layout_width="wrap_content" android:layout_height="12.5dp"></ImageView> <TextView android:id="@+id/tv_level_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="升级为铂金会员红包可提高100%" android:textColor="#ffffffff" android:textSize="8sp" /> </LinearLayout> </FrameLayout> </LinearLayout> <LinearLayout android:id="@+id/ll_shop" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginRight="10dp" android:background="@drawable/shape_goods_detail_item_bg" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:gravity="center_vertical" android:orientation="horizontal"> <FrameLayout android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center_vertical" android:layout_marginRight="10dp" android:background="@drawable/shape_detail_shop_gray_corner"> <ImageView android:id="@+id/iv_shop_img" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" /> </FrameLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_shop_name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:gravity="center_vertical" android:textColor="@color/text_black_1" android:textSize="14sp" /> <TextView android:id="@+id/tv_shop_see" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:drawableRight="@drawable/ic_player_input" android:drawablePadding="8dp" android:text="查看店铺" android:textColor="@color/gray2" android:visibility="gone" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_des" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="宝贝描述" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_des_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <View android:layout_width="1px" android:layout_height="0dp" android:layout_weight="1"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_service" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="卖家服务" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_service_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <View android:layout_width="1px" android:layout_height="0dp" android:layout_weight="1"></View> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_shop_logistics" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="物流服务" android:textColor="@color/text_black_1" android:textSize="11sp" /> <TextView android:id="@+id/tv_shop_logistics_grade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:background="@drawable/shape_shop_score_grade" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> <FrameLayout android:id="@+id/fl_goods_detail" android:layout_width="match_parent" android:layout_height="48dp" android:layout_gravity="center" android:layout_marginTop="10dp" android:background="@color/white"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:gravity="center" android:text="查看宝贝详情" android:textColor="#444444" android:textSize="16sp" /> <ImageView android:id="@+id/iv_imgtext_status" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_detail_img_open" /> </FrameLayout> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="visible" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical"> <include layout="@layout/item_recyclerview_bottom" /> </FrameLayout> <LinearLayout android:id="@+id/ll_guess_like" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="8dp" android:background="@color/register_gray" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="46dp" android:background="#FFFFFF" android:gravity="center" android:text="猜你喜欢" android:textColor="#ff444444" android:textSize="15sp" /> <com.wpc.library.widget.MyGridView android:id="@+id/gv_guess_like" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginTop="4dp" android:layout_marginRight="4dp" android:background="@color/register_gray" android:columnWidth="3dp" android:horizontalSpacing="4dp" android:numColumns="2" android:verticalSpacing="4dp"></com.wpc.library.widget.MyGridView> </LinearLayout> </LinearLayout> </ScrollView> <!--状态栏1--> <LinearLayout android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:orientation="horizontal"> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_back" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:src="@drawable/ic_back2" /> </FrameLayout> <View android:layout_width="0dp" android:layout_height="1dp" android:layout_weight="3" /> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_share" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_des_share" /> </FrameLayout> </LinearLayout> <!--状态栏2--> <LinearLayout android:id="@+id/ll_top_title" android:layout_width="match_parent" android:layout_height="48dp" android:background="@color/white" android:gravity="center_vertical" android:orientation="horizontal" android:visibility="gone"> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_top_bar_left1" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|left" android:layout_marginLeft="10dp" android:src="@drawable/ic_back3" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:padding="8dp" android:text="宝贝" android:textColor="@color/main_text_color" android:textSize="17sp" /> <View android:id="@+id/v_1" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:paddingTop="8dp" android:paddingBottom="8dp" android:text="详情" android:textColor="@color/black2" android:textSize="17sp" /> <View android:id="@+id/v_2" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title3" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:visibility="gone"> <TextView android:id="@+id/tv_top_title3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:ellipsize="end" android:gravity="center" android:text="喜欢" android:textColor="@color/black2" android:textSize="17sp" /> <View android:id="@+id/v_3" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <FrameLayout android:id="@+id/fl_top_title4" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1"> <TextView android:id="@+id/tv_top_title4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:ellipsize="end" android:gravity="center" android:text="推荐" android:textColor="@color/black2" android:textSize="17sp" /> <View android:id="@+id/v_4" android:layout_width="30dp" android:layout_height="3dp" android:layout_gravity="bottom|center_horizontal" android:background="@color/main_text_color" android:visibility="gone" /> </FrameLayout> <FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <ImageView android:id="@+id/iv_top_bar_right" android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center_vertical|right" android:layout_marginRight="10dp" android:src="@drawable/ic_des_top_right" /> </FrameLayout> </LinearLayout> </FrameLayout> <View android:id="@+id/v_bottom_line" android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:layout_marginBottom="50dp" android:background="@color/register_gray" /> <FrameLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="bottom" android:background="@color/white"> <LinearLayout android:id="@+id/ll_bottom" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="left"> <LinearLayout android:id="@+id/ll_copy_link" android:layout_width="wrap_content" android:layout_height="match_parent" android:background="@drawable/bg_ripple" android:gravity="center" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:visibility="gone"> <ImageView android:layout_width="wrap_content" android:layout_height="19dp" android:layout_gravity="center" android:gravity="center" android:src="@drawable/icon_copy_link" /> <TextView android:id="@+id/tv_copy_link" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="复制链接" android:textColor="#333333" android:textSize="9sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_add_collect" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_marginLeft="25dp" android:gravity="center" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:visibility="visible"> <ImageView android:id="@+id/iv_like_state" android:layout_width="wrap_content" android:layout_height="19dp" android:layout_gravity="center" android:gravity="center" android:src="@drawable/icon_un_collected" /> <TextView android:id="@+id/tv_like" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="收藏" android:textColor="#333333" android:textSize="9sp" /> </LinearLayout> </LinearLayout> <View android:id="@+id/view_share_buy_divider" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:visibility="gone"></View> <LinearLayout android:id="@+id/ll_fanli_gain" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@drawable/shape_go_fanli" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="分享奖" android:textColor="@color/white" android:textSize="15sp" /> <TextView android:id="@+id/tv_fanli_money_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="12" android:textColor="@color/white" android:textSize="12sp" /> </LinearLayout> <LinearLayout android:id="@+id/fl_buy" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@drawable/shape_go_buy" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="下单返" android:textColor="@color/white" android:textSize="15sp" /> <TextView android:id="@+id/tv_buy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="12.00" android:textColor="@color/white" android:textSize="12sp" /> </LinearLayout> <View android:layout_width="5dp" android:layout_height="wrap_content"></View> </LinearLayout> <TextView android:id="@+id/tv_big_btn" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="center" android:layout_marginLeft="38dp" android:layout_marginRight="38dp" android:background="@drawable/shape_go_search" android:gravity="center" android:textColor="@color/white" android:textSize="18sp" android:textStyle="bold" android:visibility="gone"> </TextView> </FrameLayout> </LinearLayout> app/src/main/res/layout/activity_login_select.xml
@@ -19,44 +19,45 @@ android:padding="8dp" android:src="@mipmap/ic_close_login" /> <ImageView android:id="@+id/iv_contact_kefu" <TextView android:id="@+id/tv_help" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center" android:layout_marginRight="20dp" android:padding="8dp" android:src="@drawable/ic_contact_kefu" /> android:text="帮助" android:textColor="#333333" android:textSize="15sp" /> </FrameLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_login_top_hint" android:layout_width="match_parent" <ImageView android:id="@+id/iv_login_mark" android:layout_width="196dp" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:gravity="center" android:text="登录领券得返利,安全简单更省钱" android:textColor="@color/main_text_color" android:textSize="18sp" /> android:minHeight="120dp" android:src="@drawable/ic_login_logo" /> <TextView android:id="@+id/tv_mobile_type" android:id="@+id/tv_bind_mark" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="38dp" android:layout_marginTop="50dp" android:focusable="true" android:focusableInTouchMode="true" android:gravity="left" android:text="@string/login_welcome" android:gravity="center" android:minHeight="120dp" android:text="绑定手机号" android:textColor="@color/text_black_1" android:textSize="25sp" /> android:textSize="25sp" android:visibility="gone" /> <LinearLayout android:layout_width="match_parent" @@ -81,8 +82,8 @@ <ImageView android:id="@+id/et_mobile_numimg" android:layout_width="8dp" android:layout_height="8dp" android:layout_width="4dp" android:layout_height="6dp" android:layout_gravity="center_vertical" android:layout_marginLeft="2dp" android:layout_marginTop="0.5dp" @@ -107,11 +108,11 @@ <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_height="1px" android:layout_marginLeft="38dp" android:layout_marginTop="15dp" android:layout_marginRight="38dp" android:background="@color/main_text_color" /> android:background="#FF2B4B" /> <TextView android:id="@+id/tv_mobile_hint" @@ -125,26 +126,38 @@ android:textColor="@color/gray" android:textSize="13sp" /> <FrameLayout android:id="@+id/fl_login_gain_sms" <TextView android:id="@+id/tv_login_gain_sms" android:layout_width="match_parent" android:layout_height="45dp" android:layout_gravity="center" android:layout_marginLeft="38dp" android:layout_marginTop="20dp" android:layout_marginRight="38dp" android:background="@drawable/selector_login_btn" android:drawablePadding="8dp" android:enabled="false" android:gravity="center" android:text="获取短信验证码" android:textColor="@color/white" android:textSize="18sp" /> <TextView android:id="@+id/tv_login_onekey" android:layout_width="match_parent" android:layout_height="45dp" android:layout_gravity="center" android:layout_marginLeft="38dp" android:layout_marginTop="40dp" android:layout_marginRight="38dp" android:background="@drawable/shape_login_gain_sms"> <TextView android:id="@+id/tv_login_gain_sms" android:layout_width="wrap_content" android:layout_height="45dp" android:layout_gravity="center" android:drawablePadding="8dp" android:gravity="center" android:text="获取短信验证码" android:textColor="@color/white" android:textSize="18sp" /> </FrameLayout> android:background="@drawable/selector_login_btn" android:drawablePadding="8dp" android:gravity="center" android:text="本机号码一键登录" android:textColor="@color/white" android:textSize="18sp" /> <TextView android:id="@+id/tv_other_login" @@ -152,19 +165,46 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="50dp" android:drawableRight="@drawable/ic_other_login_open" android:layout_marginBottom="26dp" android:drawablePadding="8dp" android:text="更多登录" android:textColor="@color/text_black_1" android:textSize="15sp" /> android:text="其他方式登录" android:textColor="@color/gray2" android:textSize="14sp" /> <ImageView android:id="@+id/iv_login_wechat" android:layout_width="wrap_content" <LinearLayout android:id="@+id/ll_other_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="20dp" android:src="@drawable/ic_login_wchat_light" /> android:gravity="center"> <TextView android:id="@+id/tv_login_wx" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableTop="@drawable/icon_login_wx" android:drawablePadding="5.5dp" android:text="微信登录" android:textColor="#ff959595" android:textSize="12sp" /> <View android:layout_width="30dp" android:layout_height="1px"></View> <TextView android:id="@+id/tv_login_qq" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableTop="@drawable/icon_login_qq" android:drawablePadding="5.5dp" android:text="QQ登录" android:textColor="#ff959595" android:textSize="12sp" /> </LinearLayout> </LinearLayout> <View @@ -199,7 +239,7 @@ android:ellipsize="end" android:maxLines="1" android:text="@string/user_protocol_extra" android:textColor="@color/theme" android:textColor="#3A7CFF" android:textSize="13dp" /> <TextView @@ -210,7 +250,7 @@ android:ellipsize="end" android:maxLines="1" android:text="《隐私政策》" android:textColor="@color/theme" android:textColor="#3A7CFF" android:textSize="13dp" /> </LinearLayout> app/src/main/res/layout/item_copy_goods_title.xml
@@ -17,7 +17,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="智 能 搜 索 优 惠 券" android:text="智能搜索" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" /> @@ -39,24 +39,9 @@ android:gravity="left" android:maxLines="3" android:text="你是否需要搜索下列商品?" android:textColor="@color/text_black_1" android:textColor="@color/gray2" android:textSize="13sp" /> <TextView android:id="@+id/tv_tb" android:layout_width="match_parent" android:layout_height="35dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginBottom="20dp" android:background="@drawable/shape_convert_link_btn" android:text="淘宝/天猫搜索" android:gravity="center" android:textColor="#ffffffff" android:textSize="16sp"> </TextView> <LinearLayout android:layout_width="match_parent" @@ -77,7 +62,7 @@ android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:text="其他搜索" android:text="搜索该标题" android:textColor="#ff999999" android:textSize="11sp" /> @@ -88,6 +73,7 @@ android:layout_weight="1" android:background="@color/divider_mine_gray" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" @@ -106,7 +92,7 @@ <RelativeLayout android:id="@+id/rl_jd" android:layout_width="40dp" android:layout_height="65dp" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_gravity="center"> @@ -123,7 +109,8 @@ android:layout_gravity="center" android:text="京东" android:textColor="@color/gray2" android:textSize="11sp" /> android:textSize="11sp" android:visibility="gone" /> </RelativeLayout> </FrameLayout> @@ -137,7 +124,7 @@ <RelativeLayout android:id="@+id/rl_pdd" android:layout_width="40dp" android:layout_height="65dp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_gravity="center"> @@ -154,7 +141,8 @@ android:layout_gravity="center" android:text="拼多多" android:textColor="@color/gray2" android:textSize="11sp" /> android:textSize="11sp" android:visibility="gone" /> </RelativeLayout> </FrameLayout> @@ -167,7 +155,7 @@ <RelativeLayout android:id="@+id/rl_vip" android:layout_width="40dp" android:layout_height="65dp" android:layout_height="wrap_content" android:layout_gravity="center"> <ImageView @@ -183,7 +171,8 @@ android:layout_gravity="center" android:text="唯品会" android:textColor="@color/gray2" android:textSize="11sp" /> android:textSize="11sp" android:visibility="gone" /> </RelativeLayout> </FrameLayout> <!--苏宁--> @@ -195,7 +184,7 @@ <RelativeLayout android:id="@+id/rl_suning" android:layout_width="40dp" android:layout_height="65dp" android:layout_height="wrap_content" android:layout_gravity="center"> <ImageView @@ -211,10 +200,30 @@ android:layout_gravity="center" android:text="苏宁" android:textColor="@color/gray2" android:textSize="11sp" /> android:textSize="11sp" android:visibility="gone" /> </RelativeLayout> </FrameLayout> </LinearLayout> <TextView android:id="@+id/tv_tb" android:layout_width="match_parent" android:layout_height="36dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:layout_marginRight="20dp" android:layout_marginBottom="20dp" android:background="@drawable/shape_convert_link_btn" android:gravity="center" android:text="淘宝/天猫搜索" android:textColor="#ffffffff" android:textSize="15sp"> </TextView> </LinearLayout> <ImageView app/src/main/res/layout/item_copy_link.xml
@@ -3,358 +3,110 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <RelativeLayout android:id="@+id/ll_top" android:layout_width="match_parent" android:layout_height="58dp" android:layout_gravity="center_vertical" android:background="@drawable/shape_smart_search_top" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="猜 你 喜 欢" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" /> </RelativeLayout> <!--猜你喜欢商品详情--> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="12dp" android:text="猜你喜欢" android:textColor="#ffffffff" android:textSize="18sp" /> <LinearLayout android:id="@+id/ll_horizontal_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_addzfb_hint3" android:baselineAligned="false" android:orientation="horizontal" android:padding="10dp" android:visibility="gone"> <View android:id="@+id/v_left" android:layout_width="2dp" android:layout_height="match_parent" android:visibility="visible" /> <FrameLayout android:layout_width="100dp" android:layout_height="100dp"> <View android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/shape_img_bg" /> <ImageView android:id="@+id/iv_movie_cover1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:scaleType="centerCrop" /> </FrameLayout> android:background="@drawable/shape_copy_link_content_bg" android:orientation="vertical" android:padding="20dp"> <LinearLayout android:layout_width="0dp" android:layout_height="100dp" android:layout_marginLeft="10dp" android:layout_weight="1" android:id="@+id/ll_goods_detail" android:visibility="gone" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout <com.wpc.library.widget.RatioLayout android:id="@+id/item_recommend_gv_ral" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> android:layout_marginBottom="11dp" app:ratio="1"> <TextView android:id="@+id/tv_movie_title1" <ImageView android:id="@+id/iv_pic" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:lines="2" android:textColor="@color/text_black_1" android:textSize="10sp" /> android:layout_height="match_parent"></ImageView> </com.wpc.library.widget.RatioLayout> </LinearLayout> <LinearLayout android:id="@+id/ll_labels" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:orientation="horizontal"></LinearLayout> <LinearLayout android:id="@+id/ll_shop1" <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:orientation="horizontal" android:visibility="gone"> android:layout_height="120dp"> <TextView android:id="@+id/tv_shop_name1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:drawablePadding="1dp" android:ellipsize="end" android:gravity="center" android:singleLine="true" android:textColor="@color/gray5" android:textSize="9sp" /> </LinearLayout> <include layout="@layout/item_goods_right"></include> </FrameLayout> <View android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="2dp" android:orientation="horizontal"> <TextView android:id="@+id/tv_price1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:ellipsize="end" android:lines="1" android:textColor="@color/theme" android:textSize="13sp" android:textStyle="bold" /> <TextView android:id="@+id/tv_normal_price1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginLeft="5dp" android:ellipsize="end" android:gravity="center_vertical|left" android:lines="1" android:textColor="@color/gray5" android:textSize="10sp" /> <TextView android:id="@+id/tv_sale_num1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginLeft="5dp" android:gravity="center_vertical|left" android:textColor="@color/gray5" android:textSize="10sp" /> </LinearLayout> <TextView android:id="@+id/tv_sale_num2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:gravity="center_vertical|left" android:textColor="@color/gray5" android:textSize="12sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginTop="2dp" android:gravity="bottom" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical"> <LinearLayout android:id="@+id/ll_coupon_bg1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="5dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:background="@drawable/shape_coupon_bg" android:gravity="center" android:includeFontPadding="false" android:paddingLeft="2dp" android:paddingTop="2dp" android:paddingRight="2dp" android:paddingBottom="2dp" android:text="券" android:layout_marginRight="-1dp" android:textColor="@color/theme" android:textSize="10sp" /> <TextView android:id="@+id/tv_coupon_price1" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:background="@drawable/shape_coupon_value_right" android:gravity="center_vertical" android:includeFontPadding="false" android:maxLines="1" android:paddingLeft="5dp" android:paddingRight="5dp" android:textColor="@color/theme" android:textSize="10sp" /> </LinearLayout> <LinearLayout android:id="@+id/ll_discount_new" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="4dp" android:orientation="horizontal" android:visibility="visible"> <TextView android:id="@+id/tv_discount_new" android:layout_width="wrap_content" android:layout_height="14dp" android:layout_gravity="center_vertical" android:background="@drawable/shape_goods_discount" android:gravity="center" android:paddingLeft="6dp" android:paddingRight="6dp" android:text="2.5折" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> <TextView android:id="@+id/tv_rate_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:textColor="#ffaaaaaa" android:textSize="9sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp"> <TextView android:id="@+id/tv_favourable1" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:background="@drawable/shape_goods_list_price_fan" android:ellipsize="end" android:gravity="center_vertical" android:lines="1" android:paddingLeft="5dp" android:paddingRight="9dp" android:textColor="@color/white" android:textSize="10sp" /> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> <!-- 兼容未加入淘宝联盟的情况--> <RelativeLayout android:id="@+id/ll_not_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_addzfb_hint3" android:paddingLeft="15.5dp" android:paddingTop="15.5dp" android:paddingRight="14.5dp" android:paddingBottom="20dp" android:visibility="gone"> <ImageView android:id="@+id/ll_not_img" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:id="@+id/ll_not_title1" <RelativeLayout android:id="@+id/ll_not_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:layout_toRightOf="@+id/ll_not_img" android:ellipsize="end" android:gravity="top" android:lineSpacingMultiplier="1.2" android:lines="2" android:text="16514+841564165" android:textColor="@color/text_black_1" android:textSize="13sp" /> android:background="@drawable/shape_addzfb_hint3" android:paddingLeft="15.5dp" android:paddingTop="15.5dp" android:paddingRight="14.5dp" android:paddingBottom="20dp" android:visibility="visible"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/ll_not_title1" android:layout_centerHorizontal="true" android:layout_marginTop="28.5dp" android:text="该商品无推广信息" android:textColor="@color/black" android:textSize="13sp" android:typeface="normal" /> </RelativeLayout> <ImageView android:id="@+id/ll_not_img" android:layout_width="50dp" android:background="@color/cardview_shadow_start_color" android:layout_height="50dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="75dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:background="@drawable/shape_addzfb_bottom_hint2" android:gravity="center"> <TextView android:id="@+id/ll_not_title1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="11dp" android:layout_toRightOf="@+id/ll_not_img" android:ellipsize="end" android:gravity="top" android:lineSpacingMultiplier="1.2" android:lines="2" android:text="商品标题商品标题商品标题商品标题商品标题商品标题商品标题商品标题商品标题" android:textColor="@color/text_black_1" android:textSize="13sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/ll_not_title1" android:layout_centerHorizontal="true" android:layout_marginTop="28.5dp" android:text="该商品无推广信息" android:textColor="@color/black" android:textSize="13sp" android:typeface="normal" /> </RelativeLayout> <TextView android:id="@+id/tv_left" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="3" android:layout_width="match_parent" android:layout_height="36dp" android:layout_marginTop="20dp" android:background="@drawable/shape_copy_link_btn" android:gravity="center" android:text="去看看" android:layout_marginRight="10dp" android:textColor="@color/theme" android:textSize="16sp"> </TextView> <TextView android:id="@+id/tv_go" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="5" android:background="@color/theme" android:gravity="center" android:text="查看详情" android:textColor="#ffffffff" android:textSize="16sp" /> android:textSize="15sp" /> </LinearLayout> app/src/main/res/layout/item_goods_detail_hongbao.xml
New file @@ -0,0 +1,299 @@ <?xml version="1.0" encoding="utf-8"?> <FrameLayout 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="wrap_content" android:background="@drawable/shape_goods_detail_hongbao_high_level_bg" android:gravity="center_horizontal" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="64dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingLeft="12dp" android:paddingRight="12dp"> <TextView android:id="@+id/tv_sub_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="19dp" android:text="¥8.88" android:textColor="#ffffffff" android:textSize="12sp" /> <View android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <TextView android:id="@+id/tv_final_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="¥28.9" android:textColor="#ffffffff" android:textSize="12sp" /> </LinearLayout> <TextView android:id="@+id/tv_more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="3dp" android:text="更多"> </TextView> <TextView android:id="@+id/tv_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|center_horizontal" android:layout_marginTop="3dp" android:text="注:本次为比价返利,1个小时后购买可提高100%" android:textColor="#ffffffff" android:textSize="8sp" /> </FrameLayout> <LinearLayout android:id="@+id/ll_hongbao_detail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="3.5dp" android:layout_marginRight="3.5dp" android:layout_marginBottom="3.5dp" android:paddingLeft="20dp" android:paddingRight="20dp"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <LinearLayout android:id="@+id/ll_money_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_0" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_1" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <View android:id="@+id/v_hongbao_cut_2" android:layout_width="0dp" android:layout_height="1px" android:layout_weight="1"></View> <LinearLayout android:id="@+id/ll_money_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:id="@+id/tv_money_name_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_money_3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="=" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="到手价" android:textColor="#FFFFFF" android:textSize="9sp" /> <TextView android:id="@+id/tv_actual_money" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="¥28.9" android:textColor="#FFFFFF" android:textSize="9sp" /> </LinearLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left|top" android:gravity="center_vertical"> <ImageView android:id="@+id/iv_level" android:layout_width="wrap_content" android:layout_height="12.5dp"></ImageView> <TextView android:id="@+id/tv_level_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="升级为铂金会员红包可提高100%" android:textColor="#ffffffff" android:textSize="8sp" /> </LinearLayout> </FrameLayout> app/src/main/res/layout/item_goods_right.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> library-gallery/src/androidTest/java/com/lzj/gallery/library/ExampleInstrumentedTest.java
@@ -16,11 +16,4 @@ */ @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Test public void useAppContext() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals("com.lzj.gallery.library.test", appContext.getPackageName()); } } library-mine/build.gradle
@@ -5,6 +5,8 @@ implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.squareup.okhttp3:okhttp:3.5.0' api 'com.github.bumptech.glide:glide:4.9.0' api files('libs/android-query-full.0.26.7.jar') } android {