Commit 209f8c60 authored by jianglx's avatar jianglx

完善会员模块;修改MainActivity 的启动模式为SingTask

parent 08971661
...@@ -157,7 +157,9 @@ ...@@ -157,7 +157,9 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- umShare 相关 end --> android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- umShare 相关 end -->
<activity android:name=".MainActivity" <activity
android:name=".MainActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
...@@ -313,7 +315,7 @@ ...@@ -313,7 +315,7 @@
</receiver> <!-- ===============================FrameBase框架End=========================== --> </receiver> <!-- ===============================FrameBase框架End=========================== -->
<!-- ================================================================= --> <!-- ================================================================= -->
<!-- 我的模块 --> <!-- 我的模块 -->
<!-- 身份证认证 --> <!-- 身份证认证 -->
<activity <activity
android:name="com.rv.rvmine.personal.IDCardCertificationActivity" android:name="com.rv.rvmine.personal.IDCardCertificationActivity"
android:launchMode="singleTask" android:launchMode="singleTask"
...@@ -355,7 +357,7 @@ ...@@ -355,7 +357,7 @@
android:launchMode="singleTask" android:launchMode="singleTask"
android:screenOrientation="portrait" /> <!-- ================================================================= --> android:screenOrientation="portrait" /> <!-- ================================================================= -->
<!-- =================================营地======================================= --> <!-- =================================营地======================================= -->
<!-- 营地详情 --> <!-- 营地详情 -->
<activity <activity
android:name="com.rv.camp.camp.CampDetailActivity" android:name="com.rv.camp.camp.CampDetailActivity"
android:launchMode="singleTask" android:launchMode="singleTask"
......
...@@ -33,7 +33,7 @@ import butterknife.OnClick; ...@@ -33,7 +33,7 @@ import butterknife.OnClick;
public class MainActivity extends BaseActivity<CommonPresenter> { public class MainActivity extends BaseActivity<CommonPresenter> {
// @BindView(R2.id.pager_view_fragment) // @BindView(R2.id.pager_view_fragment)
CustomScrollViewPager viewPager; CustomScrollViewPager viewPager;
@BindView(R2.id.iv_home) @BindView(R2.id.iv_home)
ImageView ivHome; ImageView ivHome;
...@@ -74,7 +74,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -74,7 +74,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
@Override @Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) { protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
viewPager= findViewById(R.id.pager_view_fragment); viewPager = findViewById(R.id.pager_view_fragment);
showTitle(false); showTitle(false);
mAdapter = new TabAdapter(getSupportFragmentManager(), getListFragment()); mAdapter = new TabAdapter(getSupportFragmentManager(), getListFragment());
viewPager.setAdapter(mAdapter); viewPager.setAdapter(mAdapter);
...@@ -103,15 +103,15 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -103,15 +103,15 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
@OnClick({R2.id.rl_home, R2.id.rl_travel, R2.id.rl_camp, R2.id.rl_found, R2.id.rl_mine}) @OnClick({R2.id.rl_home, R2.id.rl_travel, R2.id.rl_camp, R2.id.rl_found, R2.id.rl_mine})
public void onViewClicked(View view) { public void onViewClicked(View view) {
int id = view.getId(); int id = view.getId();
if (id ==R.id.rl_home ){ if (id == R.id.rl_home) {
setCurrent(TYPE_HOME_PAGE); setCurrent(TYPE_HOME_PAGE);
}else if (id == R.id.rl_travel){ } else if (id == R.id.rl_travel) {
setCurrent(TYPE_TRAVEL); setCurrent(TYPE_TRAVEL);
}else if (id ==R.id.rl_camp){ } else if (id == R.id.rl_camp) {
setCurrent(TYPE_CAMP); setCurrent(TYPE_CAMP);
}else if (id == R.id.rl_found){ } else if (id == R.id.rl_found) {
setCurrent(TYPE_FOUND); setCurrent(TYPE_FOUND);
}else if (id == R.id.rl_mine){ } else if (id == R.id.rl_mine) {
setCurrent(TYPE_MINE); setCurrent(TYPE_MINE);
} }
} }
...@@ -168,6 +168,14 @@ public class MainActivity extends BaseActivity<CommonPresenter> { ...@@ -168,6 +168,14 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
return super.dispatchKeyEvent(event); return super.dispatchKeyEvent(event);
} }
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent != null && "use_member".equals(intent.getStringExtra("from"))) {
setCurrent(TYPE_HOME_PAGE);
}
}
/** /**
* 退出APP * 退出APP
*/ */
......
...@@ -82,10 +82,9 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -82,10 +82,9 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
TextView tvPurchaseRecord; TextView tvPurchaseRecord;
private MemberListAdapter adapter; private MemberListAdapter adapter;
private UserInfoBean.UserInfo info; private UserInfoBean.UserInfo info;
private IWXAPI api; private IWXAPI api;
private int memberLevel = 0; // 会员等级
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
return new Intent(context, MemberCenterActivity.class); return new Intent(context, MemberCenterActivity.class);
...@@ -111,7 +110,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -111,7 +110,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
.subscribe(new Consumer<PaymentSuccessfulEvent>() { .subscribe(new Consumer<PaymentSuccessfulEvent>() {
@Override @Override
public void accept(PaymentSuccessfulEvent payEvent) throws Exception { public void accept(PaymentSuccessfulEvent payEvent) throws Exception {
finish(); getUserData();
} }
}); });
...@@ -134,7 +133,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -134,7 +133,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
switch (requestType) { switch (requestType) {
case 0: case 0:
if (adapter == null) { if (adapter == null) {
adapter = new MemberListAdapter(((MemberListBean) result).getData(), MemberCenterActivity.this, payListener); adapter = new MemberListAdapter(((MemberListBean) result).getData(), memberLevel, MemberCenterActivity.this, payListener);
recyclerView.setAdapter(adapter); recyclerView.setAdapter(adapter);
} else { } else {
adapter.setDate(((MemberListBean) result).getData()); adapter.setDate(((MemberListBean) result).getData());
...@@ -224,7 +223,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -224,7 +223,7 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
} }
tvConsumeRecord.setText(info.getPayCount() + "\n 消费记录"); tvConsumeRecord.setText(info.getPayCount() + "\n 消费记录");
tvFreeDay.setText(info.getRentFreeDays() +"\n 可免费租车 (天)"); tvFreeDay.setText(info.getRentFreeDays() + "\n 可免费租车 (天)");
tvFreeDay.setText(info.getBuyCount() + "\n 购买记录 (次)"); tvFreeDay.setText(info.getBuyCount() + "\n 购买记录 (次)");
} }
...@@ -239,9 +238,18 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> { ...@@ -239,9 +238,18 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
tvVerified.setVisibility(View.VISIBLE); tvVerified.setVisibility(View.VISIBLE);
if (info != null) { if (info != null) {
ivMember.setVisibility(View.VISIBLE); ivMember.setVisibility(View.VISIBLE);
if (info.getIsMember() == 0) { if (info.getIsMember() == 0) {
memberLevel = 1;
if (adapter != null) {
adapter.setMemberLevel(memberLevel);
}
ivMember.setImageResource(R.drawable.mycenter_icon_goldmembership_1); ivMember.setImageResource(R.drawable.mycenter_icon_goldmembership_1);
} else { } else {
memberLevel = info.getMemberLevel();
if (adapter != null) {
adapter.setMemberLevel(memberLevel);
}
switch (info.getMemberLevel()) { switch (info.getMemberLevel()) {
case 1: case 1:
ivMember.setImageResource(R.drawable.mycenter_icon_ord_membership); ivMember.setImageResource(R.drawable.mycenter_icon_ord_membership);
......
package com.rv.rvmine.member.adapter;
import android.content.Context;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean;
import java.util.List;
public class GridMemerAdapter extends BaseAdapter {
private int selecPosition;
private Context mContext;
private List<MemberListBean.MemberCard> mData;
private SelectListener mListener;
public interface SelectListener {
void select(MemberListBean.MemberCard memberCard);
}
public GridMemerAdapter(Context context, List<MemberListBean.MemberCard> lists, SelectListener listener) {
this.mContext = context;
this.mData = lists;
this.mListener = listener;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int i) {
return mData.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
final MemberListBean.MemberCard memberCard = mData.get(i);
ViewHolder holder;
if (view == null) {
view = LayoutInflater.from(mContext).inflate(R.layout.item_member_detail_view, null);
holder = new ViewHolder();
holder.rl_content = view.findViewById(R.id.rl_content);
holder.tv_discount = view.findViewById(R.id.tv_discount);
holder.tv_free_day = view.findViewById(R.id.tv_free_day);
holder.tv_price = view.findViewById(R.id.tv_price);
holder.tv_type_icon = view.findViewById(R.id.tv_type_icon);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
SpannableString s = new SpannableString("¥" + memberCard.getPrice());
s.setSpan(new AbsoluteSizeSpan(12, true), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new AbsoluteSizeSpan(18, true), 1, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 1, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.tv_price.setText(s);
holder.tv_discount.setText("永久" + memberCard.getDiscount() / 10 + "折租车");
holder.tv_free_day.setText(memberCard.getNumber() + "天免费租车");
holder.tv_type_icon.setText(memberCard.getName());
switch (memberCard.getLevel()) {
case 1:
holder.tv_type_icon.setBackgroundResource(R.drawable.member_icon_reg_members);
break;
case 2:
holder.tv_type_icon.setBackgroundResource(R.drawable.member_icon_gold_membership);
break;
case 3:
holder.tv_type_icon.setBackgroundResource(R.drawable.member_icon_dia_membership);
break;
}
if (selecPosition == i) {
holder.rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_selected);
} else {
holder.rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_unselected);
}
holder.rl_content.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selecPosition = i;
mListener.select(memberCard);
notifyDataSetChanged();
}
});
return view;
}
private class ViewHolder {
RelativeLayout rl_content;
TextView tv_price;
TextView tv_discount;
TextView tv_free_day;
TextView tv_type_icon;
}
}
package com.rv.rvmine.member.adapter; package com.rv.rvmine.member.adapter;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
...@@ -13,14 +16,14 @@ import android.view.LayoutInflater; ...@@ -13,14 +16,14 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.ruiwenliu.wrapper.util.glide.GlideManager; import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.rvmine.R; import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean; import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.member.view.MemberCardDetailView;
import com.rv.rvmine.member.view.MemberCardView; import com.rv.rvmine.member.view.MemberCardView;
import java.util.List; import java.util.List;
...@@ -29,23 +32,36 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -29,23 +32,36 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
private Context mContext; private Context mContext;
private List<MemberListBean.MemberCard> mData; private List<MemberListBean.MemberCard> mData;
private int selectPosition;
private PayListener payListener; private PayListener payListener;
private int memberLevel;
private GridMemerAdapter adapter;
private MemberListBean.MemberCard selectCard;
public interface PayListener { public interface PayListener {
void pay(MemberListBean.MemberCard card); void pay(MemberListBean.MemberCard card);
} }
public MemberListAdapter(@Nullable List<MemberListBean.MemberCard> data, Context context, PayListener listener) { public void setMemberLevel(int memberLevel) {
this.memberLevel = memberLevel;
notifyDataSetChanged();
}
public void setDate(List<MemberListBean.MemberCard> data) {
initData(data);
notifyDataSetChanged();
}
public MemberListAdapter(@Nullable List<MemberListBean.MemberCard> data, int memberLevel, Context context, PayListener listener) {
this.memberLevel = memberLevel;
this.mContext = context; this.mContext = context;
this.payListener = listener; this.payListener = listener;
initData(data); initData(data);
} }
private void initData(List<MemberListBean.MemberCard> data) { private void initData(List<MemberListBean.MemberCard> data) {
selectPosition = 1;
data.add(0, null); data.add(0, null);
mData = data; mData = data;
selectCard = mData.get(1);
} }
...@@ -84,6 +100,7 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -84,6 +100,7 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
private void setHeadViewData(final HeadViewHolder viewHolder) { private void setHeadViewData(final HeadViewHolder viewHolder) {
setMemeberTop(viewHolder);
SpannableString spannableString = new SpannableString(viewHolder.tv_agreement.getText()); SpannableString spannableString = new SpannableString(viewHolder.tv_agreement.getText());
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 6, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 6, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
viewHolder.tv_agreement.setText(spannableString); viewHolder.tv_agreement.setText(spannableString);
...@@ -107,34 +124,75 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -107,34 +124,75 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (payListener != null) { if (payListener != null) {
payListener.pay(mData.get(selectPosition)); payListener.pay(selectCard);
} }
} }
}); });
initGridView(viewHolder);
viewHolder.btn_buy.setText("立即开通" + selectCard.getName());
viewHolder.btnDisountUse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
toMainActivity();
}
});
viewHolder.gridview.removeAllViews(); viewHolder.btnFreedayUse.setOnClickListener(new View.OnClickListener() {
for (int i = 1; i < mData.size(); i++) { @Override
if (mData.get(i) != null) { public void onClick(View view) {
final int finalI = i; toMainActivity();
MemberCardDetailView cardDetailView = new MemberCardDetailView(mContext, mData.get(i), new MemberCardDetailView.MyClickListener() { }
});
@Override }
public void onClick(MemberCardDetailView view) {
selectPosition = finalI; private void toMainActivity() {
viewHolder.btn_buy.setText("立即开通" + mData.get(selectPosition).getName()); ComponentName componentName = new ComponentName(mContext, "com.test.rv.MainActivity");
for (int i = 0; i < viewHolder.gridview.getChildCount(); i++) { Intent intent = new Intent();
if (view != viewHolder.gridview.getChildAt(i)) { intent.putExtra("from", "use_member");
((MemberCardDetailView) viewHolder.gridview.getChildAt(i)).unSelect(); intent.setComponent(componentName);
} mContext.startActivity(intent);
} }
}
}); private void initGridView(final HeadViewHolder viewHolder) {
if (i == selectPosition) {
cardDetailView.select(); viewHolder.gridview.setNumColumns(mData.size() - 1);
viewHolder.btn_buy.setText("立即开通" + mData.get(selectPosition).getName());
if (adapter == null) {
adapter = new GridMemerAdapter(mContext, mData.subList(1, mData.size()), new GridMemerAdapter.SelectListener() {
@Override
public void select(MemberListBean.MemberCard memberCard) {
selectCard = memberCard;
viewHolder.btn_buy.setText("立即开通" + memberCard.getName());
} }
viewHolder.gridview.addView(cardDetailView); });
}
viewHolder.gridview.setAdapter(adapter);
}
private void setMemeberTop(final HeadViewHolder viewHolder) {
if (memberLevel > 0) {
viewHolder.rlTop.setVisibility(View.VISIBLE);
switch (memberLevel) {
case 1:
viewHolder.imgDiscountTop.setImageResource(R.drawable.member_discount_8);
viewHolder.tvDiscountTop.setText("租车8折");
viewHolder.imgFreedayTop.setImageResource(R.drawable.member_free_day_5);
viewHolder.tvFreedayTop.setText("免费用车" + mData.get(1).getNumber() + "天");
break;
case 2:
viewHolder.imgDiscountTop.setImageResource(R.drawable.member_discount_7);
viewHolder.tvDiscountTop.setText("租车7折");
viewHolder.imgFreedayTop.setImageResource(R.drawable.member_free_day_12);
viewHolder.tvFreedayTop.setText("免费用车" + mData.get(2).getNumber() + "天");
break;
case 3:
viewHolder.imgDiscountTop.setImageResource(R.drawable.member_discount_6);
viewHolder.tvDiscountTop.setText("租车6折");
viewHolder.imgFreedayTop.setImageResource(R.drawable.member_free_day_28);
viewHolder.tvFreedayTop.setText("免费用车" + mData.get(3).getNumber() + "天");
break;
} }
} }
} }
...@@ -164,18 +222,20 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -164,18 +222,20 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
viewHolder.mcv_free_day.setValue(bean.getNumber()); viewHolder.mcv_free_day.setValue(bean.getNumber());
} }
public void setDate(List<MemberListBean.MemberCard> data) {
initData(data);
notifyDataSetChanged();
}
public class HeadViewHolder extends RecyclerView.ViewHolder { public class HeadViewHolder extends RecyclerView.ViewHolder {
int agreeState = 1; // 选中状态 int agreeState = 1; // 选中状态
LinearLayout gridview; GridView gridview;
TextView tv_agreement; TextView tv_agreement;
ImageView img_agree; ImageView img_agree;
Button btn_buy; Button btn_buy;
RelativeLayout rlTop;
ImageView imgDiscountTop;
TextView tvDiscountTop;
Button btnDisountUse;
ImageView imgFreedayTop;
TextView tvFreedayTop;
Button btnFreedayUse;
public HeadViewHolder(@NonNull View itemView) { public HeadViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
...@@ -183,6 +243,13 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol ...@@ -183,6 +243,13 @@ public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
tv_agreement = itemView.findViewById(R.id.tv_agreement); tv_agreement = itemView.findViewById(R.id.tv_agreement);
img_agree = itemView.findViewById(R.id.img_agree); img_agree = itemView.findViewById(R.id.img_agree);
btn_buy = itemView.findViewById(R.id.btn_buy); btn_buy = itemView.findViewById(R.id.btn_buy);
rlTop = itemView.findViewById(R.id.rl_member_top);
imgDiscountTop = itemView.findViewById(R.id.img_discount_top);
tvDiscountTop = itemView.findViewById(R.id.tv_discount_top);
btnDisountUse = itemView.findViewById(R.id.btn_disount_use);
imgFreedayTop = itemView.findViewById(R.id.img_freeday_top);
tvFreedayTop = itemView.findViewById(R.id.tv_freeday_top);
btnFreedayUse = itemView.findViewById(R.id.btn_freeday_use);
} }
} }
......
package com.rv.rvmine.member.view;
import android.content.Context;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean;
public class MemberCardDetailView extends LinearLayout {
private int state = 0; // 未选中状态
private MemberListBean.MemberCard memberCard;
private RelativeLayout rl_content;
private TextView tv_price;
private TextView tv_discount;
private TextView tv_free_day;
private TextView tv_type;
private MyClickListener clickListener;
public MemberCardDetailView(Context context, MemberListBean.MemberCard memberCard, MyClickListener clickListener) {
super(context);
this.memberCard = memberCard;
this.clickListener = clickListener;
initView();
}
private void initView() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_member_detail_view, null);
rl_content = view.findViewById(R.id.rl_content);
tv_price = view.findViewById(R.id.tv_price);
tv_discount = view.findViewById(R.id.tv_discount);
tv_free_day = view.findViewById(R.id.tv_free_day);
tv_type = view.findViewById(R.id.tv_type_icon);
if (memberCard != null) {
SpannableString s = new SpannableString("¥" + memberCard.getPrice());
s.setSpan(new AbsoluteSizeSpan(12, true), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new AbsoluteSizeSpan(18, true), 1, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 1, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_price.setText(s);
tv_discount.setText("永久" + memberCard.getDiscount() / 10 + "折租车");
tv_free_day.setText(memberCard.getNumber() + "天免费租车");
tv_type.setText(memberCard.getName());
switch (memberCard.getLevel()) {
case 1:
tv_type.setBackgroundResource(R.drawable.member_icon_reg_members);
break;
case 2:
tv_type.setBackgroundResource(R.drawable.member_icon_gold_membership);
break;
case 3:
tv_type.setBackgroundResource(R.drawable.member_icon_dia_membership);
break;
}
}
rl_content.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (state == 0) {
state = 1;
rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_selected);
clickListener.onClick(MemberCardDetailView.this);
}
}
});
addView(view);
}
public void unSelect() {
state = 0;
rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_unselected);
}
public void select() {
state = 1;
rl_content.setBackgroundResource(R.drawable.shape_rv_bg_member_selected);
}
public interface MyClickListener {
void onClick(MemberCardDetailView view);
}
}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" /> <corners android:radius="5dp" />
<solid android:color="@color/nimeBg" /> <solid android:color="#F8F3C9" />
<stroke <stroke
android:width="0.2dp" android:width="0.2dp"
android:color="@color/gray_FFB74B" /> android:color="@color/gray_FFB74B" />
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dp" />
<solid android:color="#CCCCCC" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dp" />
<solid android:color="#BA58EB" />
</shape>
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:layout_marginLeft="@dimen/size_20" android:layout_marginLeft="@dimen/dp_10"
android:textStyle="bold" android:textStyle="bold"
android:id="@+id/tv_member_type" android:id="@+id/tv_member_type"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_30" android:layout_marginLeft="@dimen/size_20"
app:card_type="0" /> app:card_type="0" />
<com.rv.rvmine.member.view.MemberCardView <com.rv.rvmine.member.view.MemberCardView
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/size_30" android:layout_marginLeft="@dimen/size_20"
app:card_type="1" /> app:card_type="1" />
<com.rv.rvmine.member.view.MemberCardView <com.rv.rvmine.member.view.MemberCardView
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginRight="@dimen/size_30" android:layout_marginRight="@dimen/size_20"
app:card_type="2" /> app:card_type="2" />
</RelativeLayout> </RelativeLayout>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_20" android:layout_marginLeft="@dimen/size_15"
android:layout_marginTop="@dimen/size_20" android:layout_marginTop="@dimen/size_20"
android:gravity="center|left" android:gravity="center|left"
android:orientation="horizontal"> android:orientation="horizontal">
...@@ -75,8 +75,8 @@ ...@@ -75,8 +75,8 @@
android:id="@+id/tv_describe" android:id="@+id/tv_describe"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_30" android:layout_marginLeft="@dimen/size_20"
android:layout_marginRight="@dimen/size_30" android:layout_marginRight="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_gray" android:background="@drawable/shape_rv_bg_dark_gray"
android:minHeight="@dimen/size_120" android:minHeight="@dimen/size_120"
android:padding="@dimen/dp_10" /> android:padding="@dimen/dp_10" />
...@@ -85,9 +85,9 @@ ...@@ -85,9 +85,9 @@
android:id="@+id/btn_buy" android:id="@+id/btn_buy"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/size_30" android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_15" android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_30" android:layout_marginRight="@dimen/size_20"
android:layout_marginBottom="@dimen/size_20" android:layout_marginBottom="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_yellow" android:background="@drawable/shape_rv_bg_dark_yellow"
android:gravity="center" android:gravity="center"
......
...@@ -2,12 +2,13 @@ ...@@ -2,12 +2,13 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:paddingLeft="@dimen/size_5"
android:paddingRight="@dimen/dp_10"> android:paddingRight="@dimen/size_5"
android:layout_weight="1">
<RelativeLayout <RelativeLayout
android:id="@+id/rl_content" android:id="@+id/rl_content"
android:layout_width="@dimen/size_100" android:layout_width="wrap_content"
android:layout_height="@dimen/size_150" android:layout_height="@dimen/size_150"
android:layout_marginTop="@dimen/size_15" android:layout_marginTop="@dimen/size_15"
android:background="@drawable/shape_rv_bg_member_unselected"> android:background="@drawable/shape_rv_bg_member_unselected">
......
...@@ -5,26 +5,146 @@ ...@@ -5,26 +5,146 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <RelativeLayout
android:layout_width="@dimen/size_200" android:id="@+id/rl_member_top"
android:layout_height="@dimen/dp_40" android:layout_width="match_parent"
android:layout_marginTop="@dimen/size_15" android:layout_height="wrap_content"
android:src="@drawable/member_image_mem_privilege_title" /> android:layout_marginTop="@dimen/size_20"
android:visibility="gone">
<LinearLayout
android:layout_width="@dimen/size_110"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="@dimen/dp_10"
android:background="@drawable/shape_rv_bg_member_unselected"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/img_discount_top"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50"
android:layout_marginTop="13dp" />
<TextView
android:id="@+id/tv_discount_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:textSize="@dimen/text_14"
android:textStyle="bold" />
<Button
android:id="@+id/btn_disount_use"
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_28"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/size_8"
android:background="@drawable/shape_rv_bg_member_top_purple"
android:gravity="center"
android:text="@string/tv_use_now"
android:textColor="@color/white"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout <LinearLayout
android:id="@+id/gridview" android:layout_width="@dimen/size_110"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20" android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/dp_10"
android:background="@drawable/shape_rv_bg_member_unselected"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/img_freeday_top"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50"
android:layout_marginTop="13dp" />
<TextView
android:id="@+id/tv_freeday_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:textSize="@dimen/text_14"
android:textStyle="bold" />
<Button
android:id="@+id/btn_freeday_use"
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_28"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/size_8"
android:background="@drawable/shape_rv_bg_member_top_purple"
android:gravity="center"
android:text="@string/tv_use_now"
android:textColor="@color/white"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:layout_width="@dimen/size_110"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:numColumns="3" android:background="@drawable/shape_rv_bg_member_unselected"
android:orientation="horizontal" /> android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/img_free_top"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50"
android:layout_marginTop="13dp"
android:src="@drawable/member_icon_free" />
<TextView
android:id="@+id/tv_free_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:text="@string/tv_outdoors_act"
android:textSize="@dimen/text_14"
android:textStyle="bold" />
<Button
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_28"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/size_8"
android:background="@drawable/shape_rv_bg_member_top_grap"
android:enabled="false"
android:gravity="center"
android:text="@string/tv_please_wait"
android:textColor="@color/white"
android:textSize="@dimen/sp_12" />
</LinearLayout>
</RelativeLayout>
</HorizontalScrollView>
<ImageView
android:layout_width="160dp"
android:layout_height="@dimen/size_32"
android:layout_marginTop="@dimen/size_15"
android:src="@drawable/member_image_mem_privilege_title" />
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_5"
android:layout_marginTop="@dimen/size_20"
android:layout_marginRight="@dimen/size_5"
android:orientation="horizontal" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -37,15 +157,16 @@ ...@@ -37,15 +157,16 @@
android:id="@+id/img_agree" android:id="@+id/img_agree"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10" android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_10"
android:paddingRight="@dimen/size_5"
android:paddingBottom="@dimen/dp_10"
android:src="@drawable/common_icon_selected" /> android:src="@drawable/common_icon_selected" />
<TextView <TextView
android:id="@+id/tv_agreement" android:id="@+id/tv_agreement"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/size_30" android:layout_height="@dimen/size_30"
android:layout_marginLeft="@dimen/size_5"
android:drawablePadding="@dimen/size_5"
android:gravity="left|center_vertical" android:gravity="left|center_vertical"
android:text="@string/tv_agreement" /> android:text="@string/tv_agreement" />
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/size_20"
android:orientation="horizontal">
</LinearLayout>
...@@ -37,11 +37,15 @@ ...@@ -37,11 +37,15 @@
<string name="tv_driver">驾驶人</string> <string name="tv_driver">驾驶人</string>
<string name="tv_traveler">出游人</string> <string name="tv_traveler">出游人</string>
<string name="tv_my_release">我的发布</string> <string name="tv_my_release">我的发布</string>
<string name="tv_open_membership">立即开通普通会员</string> <string name="tv_open_membership">立即开通普通会员</string>
<string name="tv_title_member_center">会员中心</string> <string name="tv_title_member_center">会员中心</string>
<string name="tv_outdoors_act">户外活动</string> <string name="tv_outdoors_act">户外活动</string>
<string name="tv_agreement">同意欣新房车 《会员服务协议会员规则》 </string> <string name="tv_agreement">同意欣新房车 《会员服务协议会员规则》 </string>
<string name="tv_use_now">马上使用</string>
<string name="tv_please_wait">敬请期待</string>
</resources> </resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment