Commit b75ff216 authored by jianglx's avatar jianglx

会员模块,差支付接口的对接

parent 1fddfdef
......@@ -56,4 +56,6 @@ public class ApiConfig {
public static String QUERY_HOT_GOODLIST = RvFrameConfig.HOST + "/api/app/home/app/unauth/goodList"; //推荐商品
public static String HTTP_URL_MEMBER_LIST = RvFrameConfig.ADMIN_POST + "/member/app/unauth/level/list"; // 会员等级列表
}
......@@ -16,9 +16,10 @@ android {
annotationProcessorOptions {
arguments = [moduleName :project.getName() ]
arguments = [moduleName: project.getName()]
} }
}
}
}
......@@ -38,5 +39,5 @@ dependencies {
implementation 'com.github.zcweng:switch-button:0.0.3@aar'
implementation 'com.contrarywind:Android-PickerView:3.2.7'
api project(':module_home')
annotationProcessor'com.alibaba:arouter-compiler:1.1.4'
annotationProcessor 'com.alibaba:arouter-compiler:1.1.4'
}
......@@ -2,4 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.rv.rvmine">
<application>
<activity android:name=".activity.MemberCenterActivity"></activity>
</application>
</manifest>
\ No newline at end of file
......@@ -26,6 +26,7 @@ import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.rv.home.rv.module.ui.main.home.DrivingListActivity;
import com.rv.home.rv.module.ui.main.home.order.OrderListActivity;
import com.rv.rvmine.activity.MemberCenterActivity;
import com.rv.rvmine.bean.UserInfoBean;
import com.rv.rvmine.personal.IDCardCertificationActivity;
import com.rv.rvmine.rxbusevent.UserInfoEvent;
......@@ -132,7 +133,6 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
}
@SuppressLint("CheckResult")
private void initRxBus() {
RxBus.tObservable(UserInfoEvent.class)
......@@ -158,7 +158,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
@OnClick({R2.id.iv_avatar, R2.id.tv_login, R2.id.tv_verified, R2.id.rl_item_to_be_paid, R2.id.rl_item_staying,
R2.id.rl_item_traveling, R2.id.rl_item_completed, R2.id.rl_item_all, R2.id.rl_item_collection, R2.id.rl_item_personal_information,
R2.id.rl_item_setting,R2.id.rl_item_driver,R2.id.rl_item_traveler,R2.id.rl_item_my_pat})
R2.id.rl_item_setting, R2.id.rl_item_driver, R2.id.rl_item_traveler, R2.id.rl_item_my_pat, R2.id.tv_view_privileges})
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.iv_avatar) {
......@@ -199,7 +199,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
if (isLogin()) return;
startActivity(OrderListActivity.getIntent(_mActivity, 4));
}else if (id ==R.id.rl_item_my_release){
} else if (id == R.id.rl_item_my_release) {
//我的发布
if (isLogin()) return;
......@@ -211,23 +211,25 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
} else if (id == R.id.rl_item_personal_information) {
//个人资料
if (isLogin()) return;
startActivity(PersonalInformationActivity.getIntent(_mActivity,info));
startActivity(PersonalInformationActivity.getIntent(_mActivity, info));
} else if (id == R.id.rl_item_setting) {
//设置
if (isLogin()) return;
startActivityForResult(SettingActivity.getIntent(_mActivity), 101);
}else if (id == R.id.rl_item_driver){
} else if (id == R.id.rl_item_driver) {
//驾驶人
if (isLogin()) return;
startActivity(DrivingListActivity.getIntent(_mActivity,null));
}else if (id == R.id.rl_item_traveler){
startActivity(DrivingListActivity.getIntent(_mActivity, null));
} else if (id == R.id.rl_item_traveler) {
//出游人
if (isLogin()) return;
startActivity(ChooseAVisitorActivity.getIntent(_mActivity));
}else if (id == R.id.rl_item_my_pat){
} else if (id == R.id.rl_item_my_pat) {
//我的拍拍
} else if (id == R.id.tv_view_privileges) {
startActivity(MemberCenterActivity.getIntent(_mActivity));
}
}
......@@ -321,7 +323,7 @@ public class MineFragment extends BaseFragment<CommonPresenter> {
private void userInfoData(UserInfoBean infoBean) {
if (infoBean != null) {
info = infoBean.getData();
if (info !=null) {
if (info != null) {
GlideManager.getInstance(_mActivity).loadImage(info.getHeadimgurl(), ivAvatar);
tvNickname.setText(info.getUsername());
if (info.getCertificationStatus() == 0) { //实名认证状态:0-未认证,1-已认证
......
package com.rv.rvmine.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.base.utils.ui.image.round.RoundImageView;
import com.frame.rv.config.RvFrameConfig;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.ruiwenliu.wrapper.weight.TitleView;
import com.rv.home.rv.module.ApiConfig;
import com.rv.home.rv.module.basic.BaseStatusActivity;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.home.rv.module.ui.login.LoginRvActivity;
import com.rv.rvmine.R;
import com.rv.rvmine.R2;
import com.rv.rvmine.adapter.MemberListAdapter;
import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.bean.UserInfoBean;
import com.rv.rvmine.personal.IDCardCertificationActivity;
import com.yuyife.okgo.OkGoUtil;
import java.util.LinkedHashMap;
import java.util.Map;
import butterknife.BindView;
import butterknife.OnClick;
/*******
* 会员中心
* created by john
*/
public class MemberCenterActivity extends BaseStatusActivity<CommonPresenter> {
private static final int REQUEST_LOGIN = 10000;
private static final int REQUEST_VERIFIED = 10001;
@BindView(R2.id.iv_avatar)
RoundImageView ivAvatar;
@BindView(R2.id.tv_nickname)
TextView tvNickname;
@BindView(R2.id.iv_member)
ImageView ivMember;
@BindView(R2.id.tv_login)
TextView tvLogin;
@BindView(R2.id.tv_verified)
TextView tvVerified;
@BindView(R2.id.recyclerView)
RecyclerView recyclerView;
private MemberListAdapter adapter;
private UserInfoBean.UserInfo info;
public static Intent getIntent(Context context) {
return new Intent(context, MemberCenterActivity.class);
}
@Override
protected int setLayout() {
return R.layout.activity_member;
}
@Override
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
titleView.setVisibility(View.GONE);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayout.VERTICAL, false));
}
@Override
public void onShowResult(int requestType, BaseBean result) {
switch (requestType) {
case 0:
if (adapter == null) {
adapter = new MemberListAdapter(((MemberListBean) result).getData(), MemberCenterActivity.this);
recyclerView.setAdapter(adapter);
}else{
adapter.setDate(((MemberListBean) result).getData()) ;
}
break;
case 1:
userInfoData((UserInfoBean) result);
break;
}
}
@OnClick({R2.id.iv_avatar, R2.id.tv_login, R2.id.tv_verified})
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.iv_avatar) {
//头像
if (isLogin()) return;
} else if (id == R.id.tv_login) {
//登录
startActivityForResult(LoginRvActivity.getIntent(MemberCenterActivity.this), REQUEST_LOGIN);
} else if (id == R.id.tv_verified) {
//实名认证
if (isLogin()) return;
startActivityForResult(IDCardCertificationActivity.getIntent(MemberCenterActivity.this), REQUEST_VERIFIED);
}
}
/**
* 判断是否登录
*
* @return
*/
private boolean isLogin() {
if (TextUtils.isEmpty(OkGoUtil.getToken())) {
startActivity(LoginRvActivity.getIntent(this));
return true;
}
return false;
}
@Override
protected void loadData(Bundle savedInstanceState, Intent intent) {
super.loadData(savedInstanceState, intent);
getUserData();
getMemberData();
}
/**********
* 获取会员中心信息
*/
private void getMemberData() {
mPresenter.getData(RvFrameConfig.ADMIN_POST, 0, ApiConfig.HTTP_URL_MEMBER_LIST, MemberListBean.class, false);
}
/**
* 获取用户信息请求
*/
private void getUserData() {
Map<String, Object> headMap = new LinkedHashMap<>();
if (OkGoUtil.getToken() != null) {
headMap.put("Authorization", OkGoUtil.getToken());
mPresenter.getDataHead(RvFrameConfig.ADMIN_POST, 1, ApiConfig.HTTP_URL_APP_USER_INFO, UserInfoBean.class, headMap, false);
}
}
private void userInfoData(UserInfoBean infoBean) {
if (infoBean != null) {
info = infoBean.getData();
if (info != null) {
GlideManager.getInstance(this).loadImage(info.getHeadimgurl(), ivAvatar);
tvNickname.setText(info.getUsername());
if (info.getCertificationStatus() == 0) { //实名认证状态:0-未认证,1-已认证
tvVerified.setText("未实名认证");
tvVerified.setEnabled(true);
} else if (info.getCertificationStatus() == 1) {
tvVerified.setText("已实名认证");
tvVerified.setEnabled(false);
}
}
if (TextUtils.isEmpty(OkGoUtil.getToken())) {
tvNickname.setVisibility(View.GONE);
ivMember.setVisibility(View.GONE);
tvLogin.setVisibility(View.VISIBLE);
tvVerified.setVisibility(View.GONE);
} else {
tvNickname.setVisibility(View.VISIBLE);
ivMember.setVisibility(View.VISIBLE);
tvLogin.setVisibility(View.GONE);
tvVerified.setVisibility(View.VISIBLE);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == REQUEST_LOGIN) {
getUserData();
getMemberData();
} else if (requestCode == REQUEST_VERIFIED) {
getUserData();
}
}
}
package com.rv.rvmine.adapter;
import android.content.Context;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.ruiwenliu.wrapper.util.glide.GlideManager;
import com.rv.rvmine.R;
import com.rv.rvmine.bean.MemberListBean;
import com.rv.rvmine.view.MemberCardDetailView;
import com.rv.rvmine.view.MemberCardView;
import java.util.List;
public class MemberListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context mContext;
private List<MemberListBean.MemberCard> mData;
private int selectPosition;
public MemberListAdapter(@Nullable List<MemberListBean.MemberCard> data, Context context) {
this.mContext = context;
data.add(0, null);
selectPosition = 1;
mData = data;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (i == 0) {
return new HeadViewHolder(LayoutInflater.from(mContext).inflate(R.layout.view_member_privilege, viewGroup, false));
}
return new CommonViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_member_detail, viewGroup, false));
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
MemberListBean.MemberCard bean = mData.get(i);
if (bean == null) {
setHeadViewData((HeadViewHolder) viewHolder);
} else {
setCommonViewData((CommonViewHolder) viewHolder, bean);
}
}
@Override
public int getItemCount() {
return mData.size();
}
@Override
public int getItemViewType(int position) {
if (mData.get(position) == null) {
return 0;
}
return 1;
}
private void setHeadViewData(final HeadViewHolder viewHolder) {
SpannableString spannableString = new SpannableString(viewHolder.tv_agreement.getText());
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB74B")), 6, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
viewHolder.tv_agreement.setText(spannableString);
viewHolder.img_agree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (viewHolder.agreeState == 1) {
viewHolder.agreeState = 0;
viewHolder.img_agree.setImageResource(R.drawable.common_icon_radio_unche);
viewHolder.btn_buy.setEnabled(false);
} else {
viewHolder.agreeState = 1;
viewHolder.img_agree.setImageResource(R.drawable.common_icon_selected);
viewHolder.btn_buy.setEnabled(true);
}
}
});
viewHolder.gridview.removeAllViews();
for (int i = 1; i < mData.size(); i++) {
if (mData.get(i) != null) {
final int finalI = i;
MemberCardDetailView cardDetailView = new MemberCardDetailView(mContext, mData.get(i), new MemberCardDetailView.MyClickListener() {
@Override
public void onClick(MemberCardDetailView view) {
selectPosition = finalI;
viewHolder.btn_buy.setText("立即开通" + mData.get(selectPosition).getName());
for (int i = 0; i < viewHolder.gridview.getChildCount(); i++) {
if (view != viewHolder.gridview.getChildAt(i)) {
((MemberCardDetailView) viewHolder.gridview.getChildAt(i)).unSelect();
}
}
}
});
if (i == selectPosition) {
cardDetailView.select();
viewHolder.btn_buy.setText("立即开通" + mData.get(selectPosition).getName());
}
viewHolder.gridview.addView(cardDetailView);
}
}
}
protected void setCommonViewData(CommonViewHolder viewHolder, MemberListBean.MemberCard bean) {
if (!TextUtils.isEmpty(bean.getName())) {
viewHolder.tv_member_type.setText(bean.getName());
viewHolder.btn_buy.setText("立即开通" + bean.getName());
}
viewHolder.btn_buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
if (!TextUtils.isEmpty(bean.getIcon()))
new GlideManager(mContext).loadImage(bean.getIcon(), viewHolder.img_icon);
SpannableString spannableString = new SpannableString(bean.getName() + bean.getPrice() + "元 (永久)");
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#F25B5B")), bean.getName().length(), spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
viewHolder.tv_member_type_price_time.setText(spannableString);
if (!TextUtils.isEmpty(bean.getDescribe())) {
viewHolder.tv_describe.setText(bean.getDescribe());
}
viewHolder.mcv_discount.setValue(bean.getDiscount());
viewHolder.mcv_free_day.setValue(bean.getNumber());
}
public void setDate(List<MemberListBean.MemberCard> data) {
this.mData = data;
notifyDataSetChanged();
}
public class HeadViewHolder extends RecyclerView.ViewHolder {
int agreeState = 1; // 选中状态
LinearLayout gridview;
TextView tv_agreement;
ImageView img_agree;
Button btn_buy;
public HeadViewHolder(@NonNull View itemView) {
super(itemView);
gridview = itemView.findViewById(R.id.gridview);
tv_agreement = itemView.findViewById(R.id.tv_agreement);
img_agree = itemView.findViewById(R.id.img_agree);
btn_buy = itemView.findViewById(R.id.btn_buy);
}
}
public class CommonViewHolder extends RecyclerView.ViewHolder {
TextView tv_member_type;
MemberCardView mcv_discount, mcv_free_day, mcv_free_outdoors;
ImageView img_icon;
TextView tv_member_type_price_time;
TextView tv_describe;
Button btn_buy;
public CommonViewHolder(@NonNull View itemView) {
super(itemView);
tv_member_type = itemView.findViewById(R.id.tv_member_type);
mcv_discount = itemView.findViewById(R.id.mcv_discount);
mcv_free_day = itemView.findViewById(R.id.mcv_free_day);
mcv_free_outdoors = itemView.findViewById(R.id.mcv_free_outdoors);
img_icon = itemView.findViewById(R.id.img_icon);
tv_member_type_price_time = itemView.findViewById(R.id.tv_member_type_price_time);
tv_describe = itemView.findViewById(R.id.tv_describe);
btn_buy = itemView.findViewById(R.id.btn_buy);
}
}
}
package com.rv.rvmine.bean;
import com.google.gson.annotations.SerializedName;
import com.ruiwenliu.wrapper.base.BaseBean;
import java.util.List;
public class MemberListBean extends BaseBean {
@SerializedName("data")
private List<MemberCard> data;
@SerializedName("rel")
private boolean rel;
public List<MemberCard> getData() {
return data;
}
public void setData(List<MemberCard> data) {
this.data = data;
}
/*****
* 会员卡
*/
public class MemberCard {
private int id;
private String name;
private String icon;
private int level;
private String describe;
private long endDate;
private int discount;
private int isdel;
private int price;
private int number;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getDescribe() {
return describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public long getEndDate() {
return endDate;
}
public void setEndDate(long endDate) {
this.endDate = endDate;
}
public int getDiscount() {
return discount;
}
public void setDiscount(int discount) {
this.discount = discount;
}
public int getIsdel() {
return isdel;
}
public void setIsdel(int isdel) {
this.isdel = isdel;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
}
package com.rv.rvmine.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);
}
}
package com.rv.rvmine.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.rv.rvmine.R;
public class MemberCardView extends LinearLayout {
private TextView tvText;
private ImageView imgIcon;
private String text;
private int res;
private int type = 0;
private int[] imgDiscounts = {
R.drawable.member_discount_6,
R.drawable.member_discount_7,
R.drawable.member_discount_8
};
private int[] imgFreeDays = {
R.drawable.member_free_day_5,
R.drawable.member_free_day_12,
R.drawable.member_free_day_28
};
public MemberCardView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.member_view);
type = ta.getInt(R.styleable.member_view_card_type, 0);
ta.recycle();
initView();
}
private void initView() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.item_member_view, null);
tvText = view.findViewById(R.id.tv_text);
imgIcon = view.findViewById(R.id.img_ic);
if (type == 0) {
text = "永久%d折";
} else if (type == 1) {
text = "%d天免费用车";
} else if (type == 2) {
tvText.setText(R.string.tv_outdoors_act);
imgIcon.setImageResource(R.drawable.member_icon_free);
}
addView(view);
}
/******
* 设置
*/
public void setValue(int value) {
if (tvText != null && imgIcon != null) {
switch (type) {
case 0:
if (value == 60) {
res = imgDiscounts[0];
} else if (value == 70) {
res = imgDiscounts[1];
} else
res = imgDiscounts[2];
tvText.setText(String.format(text, (int) (value / 10)));
imgIcon.setImageResource(res);
break;
case 1:
if (value == 28) {
res = imgFreeDays[2];
} else if (value == 12) {
res = imgFreeDays[1];
} else
res = imgFreeDays[0];
tvText.setText(String.format(text, value));
imgIcon.setImageResource(res);
break;
default:
break;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<solid android:color="@color/input_grap" />
</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="30dp" />
<solid android:color="@color/gray_FFB74B" />
</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="5dp" />
<solid android:color="@color/nimeBg" />
<stroke
android:width="0.2dp"
android:color="@color/gray_FFB74B" />
</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="5dp" />
<solid android:color="@color/white" />
<stroke
android:width="0.2dp"
android:color="@color/input_grap" />
</shape>
\ No newline at end of file
This diff is collapsed.
<?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="wrap_content"
android:orientation="vertical">
<TextView
android:layout_marginLeft="@dimen/size_20"
android:textStyle="bold"
android:id="@+id/tv_member_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/size_18" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20"
android:orientation="horizontal">
<com.rv.rvmine.view.MemberCardView
android:id="@+id/mcv_discount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/size_30"
app:card_type="0" />
<com.rv.rvmine.view.MemberCardView
android:id="@+id/mcv_free_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="@dimen/size_30"
app:card_type="1" />
<com.rv.rvmine.view.MemberCardView
android:id="@+id/mcv_free_outdoors"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/size_30"
app:card_type="2" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_20"
android:gravity="center|left"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_icon"
android:layout_width="@dimen/size_20"
android:layout_height="@dimen/size_20" />
<TextView
android:textColor="@color/black"
android:id="@+id/tv_member_type_price_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp" />
</LinearLayout>
<TextView
android:layout_marginTop="@dimen/dp_10"
android:id="@+id/tv_describe"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginRight="@dimen/size_30"
android:background="@drawable/shape_rv_bg_dark_gray"
android:minHeight="@dimen/size_120"
android:padding="@dimen/dp_10" />
<Button
android:id="@+id/btn_buy"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/size_30"
android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_30"
android:layout_marginBottom="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_yellow"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/text_16" />
</LinearLayout>
<?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_weight="1"
android:paddingRight="@dimen/dp_10">
<RelativeLayout
android:id="@+id/rl_content"
android:layout_width="@dimen/size_100"
android:layout_height="@dimen/size_150"
android:layout_marginTop="@dimen/size_15"
android:background="@drawable/shape_rv_bg_member_unselected">
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_40"
android:gravity="center|bottom"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/tv_discount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_free_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/size_20"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</RelativeLayout>
<TextView
android:id="@+id/tv_type_icon"
android:layout_width="@dimen/size_60"
android:layout_height="@dimen/size_30"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:textColor="@color/white" />
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/img_ic"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50" />
<TextView
android:id="@+id/tv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_12"
android:gravity="center"
android:textColor="@color/black"
android:textSize="16sp" />
</LinearLayout>
<?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="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="@dimen/size_200"
android:layout_height="@dimen/dp_40"
android:layout_marginTop="@dimen/size_15"
android:src="@drawable/member_image_mem_privilege_title" />
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20"
android:layout_marginRight="@dimen/dp_10"
android:numColumns="3"
android:orientation="horizontal" />
</HorizontalScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_agree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:src="@drawable/common_icon_selected" />
<TextView
android:id="@+id/tv_agreement"
android:layout_width="match_parent"
android:layout_height="@dimen/size_30"
android:layout_marginLeft="@dimen/size_5"
android:drawablePadding="@dimen/size_5"
android:gravity="left|center_vertical"
android:text="@string/tv_agreement" />
</LinearLayout>
<Button
android:id="@+id/btn_buy"
android:layout_width="match_parent"
android:layout_height="@dimen/size_38"
android:layout_marginLeft="@dimen/size_20"
android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_20"
android:layout_marginBottom="@dimen/size_20"
android:background="@drawable/shape_rv_bg_dark_yellow"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/text_18" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="member_view">
<attr name="card_type" format="integer" />
</declare-styleable>
</resources>
......@@ -4,4 +4,6 @@
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="nimeBg">#FFE49A</color>
<color name="black">#000000</color>
<color name="input_grap">#EEEEEE</color>
</resources>
......@@ -37,4 +37,11 @@
<string name="tv_driver">驾驶人</string>
<string name="tv_traveler">出游人</string>
<string name="tv_my_release">我的发布</string>
<string name="tv_open_membership">立即开通普通会员</string>
<string name="tv_title_member_center">会员中心</string>
<string name="tv_outdoors_act">户外活动</string>
<string name="tv_agreement">同意欣新房车 《会员服务协议会员规则》 </string>
</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