添加‘我的’页面的银行卡绑定接口和用户资料接口

This commit is contained in:
md 2021-06-29 18:21:05 +08:00
parent 4653d7a501
commit 5ad871a254
15 changed files with 845 additions and 111 deletions

View File

@ -3,7 +3,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion '29.0.2'
// ndkVersion '23.0.7123448'
ndkVersion '23.0.7123448'
defaultConfig {
applicationId "com.navinfo.outdoor"

View File

@ -0,0 +1,215 @@
[
{"label": "中国工商银行", "value": "102100099996"},
{"label": "中国农业银行股份有限公司", "value": "103100000026"},
{"label": "中国银行总行", "value": "104100000004"},
{"label": "中国建设银行股份有限公司总行", "value": "105100000017"},
{"label": "交通银行", "value": "301290000007"},
{"label": "中国邮政储蓄银行有限责任公司", "value": "403100000004"},
{"label": "招商银行股份有限公司", "value": "308584000013"},
{"label": "中信银行股份有限公司", "value": "302100011000"},
{"label": "中国光大银行", "value": "303100000006"},
{"label": "中国民生银行", "value": "305100000013"},
{"label": "兴业银行总行", "value": "309391000011"},
{"label": "广东发展银行股份有限公司运营作业部", "value": "306581000003"},
{"label": "上海浦东发展银行", "value": "310290000013"},
{"label": "平安银行", "value": "307584007998"},
{"label": "北京银行", "value": "313100000013"},
{"label": "安徽省农村信用联社资金清算中心", "value": "402361018886"},
{"label": "鞍山银行股份有限公司", "value": "313223007007"},
{"label": "包商银行股份有限公司", "value": "313192000013"},
{"label": "北京农村商业银行股份有限公司", "value": "402100000018"},
{"label": "北京顺义银座村镇银行股份有限公司", "value": "320100010011"},
{"label": "渤海银行股份有限公司", "value": "318110000014"},
{"label": "沧州银行", "value": "313143005157"},
{"label": "长安银行股份有限公司", "value": "313791030003"},
{"label": "长沙银行股份有限公司", "value": "313551088886"},
{"label": "承德银行股份有限公司", "value": "313141052422"},
{"label": "重庆农村商业银行股份有限公司", "value": "314653000011"},
{"label": "重庆黔江银座村镇银行股份有限公司", "value": "320687000016"},
{"label": "重庆银行", "value": "313653000013"},
{"label": "重庆渝北银座村镇银行股份有限公司", "value": "320653000104"},
{"label": "大连银行", "value": "313222080002"},
{"label": "长城华西银行股份有限公司", "value": "313658000014"},
{"label": "德州银行股份有限公司", "value": "313468000015"},
{"label": "东莞农村商业银行股份有限公司", "value": "402602000018"},
{"label": "东莞银行股份有限公司", "value": "313602088017"},
{"label": "东营银行股份有限公司", "value": "313455000018"},
{"label": "鄂尔多斯银行股份有限公司", "value": "313205057830"},
{"label": "佛山顺德农村商业银行股份有限公司", "value": "314588000016"},
{"label": "福建海峡银行股份有限公司", "value": "313391080007"},
{"label": "福建省农村信用社联合社", "value": "402391000068"},
{"label": "阜新银行结算中心", "value": "313229000008"},
{"label": "富滇银行股份有限公司运营管理部", "value": "313731010015"},
{"label": "赣州银行股份有限公司", "value": "313428076517"},
{"label": "广东华兴银行股份有限公司", "value": "313586000006"},
{"label": "广东南粤银行股份有限公司", "value": "313591001001"},
{"label": "广西北部湾银行", "value": "313611001018"},
{"label": "广西壮族自治区农村信用社联合社", "value": "402611099974"},
{"label": "广州农村商业银行股份有限公司", "value": "314581000011"},
{"label": "广州银行", "value": "313581003284"},
{"label": "贵阳银行股份有限公司", "value": "313701098010"},
{"label": "桂林银行股份有限公司", "value": "313617000018"},
{"label": "哈尔滨银行结算中心", "value": "313261000018"},
{"label": "海南省农村信用社联合社资金清算中心", "value": "402641000014"},
{"label": "邯郸银行股份有限公司", "value": "313127000013"},
{"label": "韩亚银行(中国)有限公司", "value": "597100000014"},
{"label": "汉口银行资金清算中心", "value": "313521000011"},
{"label": "杭州银行股份有限公司", "value": "313331000014"},
{"label": "河北银行股份有限公司", "value": "313121006888"},
{"label": "恒丰银行", "value": "315456000105"},
{"label": "湖北省农村信用社联合社结算中心", "value": "402521000032"},
{"label": "湖州银行股份有限公司", "value": "313336071575"},
{"label": "葫芦岛银行股份有限公司", "value": "313227600018"},
{"label": "徽商银行股份有限公司", "value": "319361000013"},
{"label": "吉林省农村信用社联合社(不办理转汇业务)", "value": "402241000015"},
{"label": "吉林银行", "value": "313241066661"},
{"label": "济宁银行股份有限公司", "value": "313461000012"},
{"label": "嘉兴银行股份有限公司清算中心(不对外办理业务)", "value": "313335081005"},
{"label": "江苏长江商业银行", "value": "313312300018"},
{"label": "江苏常熟农村商业银行股份有限公司清算中心", "value": "314305506621"},
{"label": "江苏银行股份有限公司", "value": "313301099999"},
{"label": "江西赣州银座村镇银行股份有限公司", "value": "320428090311"},
{"label": "锦州银行", "value": "313227000012"},
{"label": "晋城银行", "value": "313168000003"},
{"label": "晋商银行股份有限公司", "value": "313161000017"},
{"label": "昆仑银行股份有限公司", "value": "313882000012"},
{"label": "昆山农村商业银行", "value": "314305206650"},
{"label": "莱商银行", "value": "313463400019"},
{"label": "兰州银行股份有限公司", "value": "313821001016"},
{"label": "廊坊银行", "value": "313146000019"},
{"label": "临商银行股份有限公司", "value": "313473070018"},
{"label": "柳州银行股份有限公司清算中心", "value": "313614000012"},
{"label": "洛阳银行", "value": "313493080539"},
{"label": "绵阳市商业银行", "value": "313659000016"},
{"label": "江西银行股份有限公司", "value": "313421087506"},
{"label": "南京银行股份有限公司", "value": "313301008887"},
{"label": "内蒙古银行", "value": "313191000011"},
{"label": "宁波鄞州农村商业银行股份有限公司(鄞州银行)", "value": "402332010004"},
{"label": "宁夏黄河农村商业银行股份有限公司", "value": "402871099996"},
{"label": "宁夏银行总行清算中心", "value": "313871000007"},
{"label": "攀枝花市商业银行", "value": "313656000019"},
{"label": "齐鲁银行", "value": "313451000019"},
{"label": "齐商银行", "value": "313453001017"},
{"label": "企业银行(中国)有限公司", "value": "596110000013"},
{"label": "青岛银行", "value": "313452060150"},
{"label": "青海银行股份有限公司营业部", "value": "313851000018"},
{"label": "泉州银行股份有限公司(不对外营业)", "value": "313397075189"},
{"label": "日照银行股份有限公司", "value": "313473200011"},
{"label": "山东省农村信用社联合社(不对外办理业务)", "value": "402451000010"},
{"label": "上海农村商业银行", "value": "322290000011"},
{"label": "上饶银行", "value": "313433076801"},
{"label": "绍兴银行股份有限公司营业部", "value": "313337009004"},
{"label": "深圳福田银座村镇银行股份有限公司", "value": "320584002002"},
{"label": "深圳农村商业银行", "value": "402584009991"},
{"label": "苏州银行股份有限公司", "value": "313305066661"},
{"label": "太仓农村商业银行", "value": "314305106644"},
{"label": "泰安银行股份有限公司", "value": "313463000993"},
{"label": "天津银行股份有限公司", "value": "313110000017"},
{"label": "外换银行(中国)有限公司", "value": "591110000016"},
{"label": "威海市商业银行", "value": "313465000010"},
{"label": "潍坊银行", "value": "313458000013"},
{"label": "温州银行股份有限公司", "value": "313333007331"},
{"label": "乌鲁木齐银行清算中心", "value": "313881000002"},
{"label": "吴江农村商业银行清算中心", "value": "314305400015"},
{"label": "西安银行股份有限公司", "value": "313791000015"},
{"label": "厦门银行股份有限公司", "value": "313393080005"},
{"label": "新韩银行(中国)有限公司", "value": "595100000007"},
{"label": "邢台银行股份有限公司", "value": "313131000016"},
{"label": "烟台银行股份有限公司", "value": "313456000108"},
{"label": "营口银行股份有限公司资金清算中心", "value": "313228000276"},
{"label": "友利银行(中国)有限公司", "value": "593100000020"},
{"label": "云南省农村信用社联合社", "value": "402731057238"},
{"label": "张家港农村商业银行", "value": "314305670002"},
{"label": "张家口银行股份有限公司", "value": "313138000019"},
{"label": "浙江稠州商业银行", "value": "313338707013"},
{"label": "浙江景宁银座村镇银行股份有限公司", "value": "320343800019"},
{"label": "浙江民泰商业银行", "value": "313345400010"},
{"label": "浙江三门银座村镇银行股份有限公司", "value": "320345790018"},
{"label": "浙江省农村信用社联合社", "value": "402331000007"},
{"label": "浙江泰隆商业银行", "value": "313345010019"},
{"label": "浙商银行", "value": "316331000018"},
{"label": "郑州银行", "value": "313491000232"},
{"label": "珠海华润银行股份有限公司清算中心", "value": "313585000990"},
{"label": "自贡市商业银行清算中心", "value": "313655091983"},
{"label": "海口联合农村商业银行股份有限公司", "value": "314641000014"},
{"label": "枣庄银行股份有限公司", "value": "313454000016"},
{"label": "龙江银行股份有限公司", "value": "313261099913"},
{"label": "宁波银行股份有限公司", "value": "313332082914"},
{"label": "江苏省农村信用社联合社信息结算中心", "value": "402301099998"},
{"label": "九江银行股份有限公司", "value": "313424076706"},
{"label": "台州银行股份有限公司", "value": "313345001665"},
{"label": "开封市商业银行", "value": "313492070005"},
{"label": "漯河市商业银行", "value": "313504000010"},
{"label": "南阳市商业银行", "value": "313513080408"},
{"label": "商丘市商业银行股份有限公司", "value": "313506082510"},
{"label": "东亚银行(中国)有限公司", "value": "502290000006"},
{"label": "成都银行", "value": "313651099999"},
{"label": "四川天府银行股份有限公司", "value": "313673093259"},
{"label": "江苏江阴农村商业银行股份有限公司", "value": "314302200018"},
{"label": "天津农村商业银行股份有限公司", "value": "317110010019"},
{"label": "四川省农村信用社联合社", "value": "402651020006"},
{"label": "中原银行股份有限公司", "value": "313491099996"},
{"label": "湖北银行股份有限公司", "value": "313521006000"},
{"label": "平顶山银行股份有限公司", "value": "313495081900"},
{"label": "保定银行股份有限公司", "value": "313134000011"},
{"label": "焦作中旅银行股份有限公司", "value": "313501080608"},
{"label": "武汉农村商业银行股份有限公司", "value": "402521090019"},
{"label": "宁波通商银行股份有限公司", "value": "313332090019"},
{"label": "东营莱商村镇银行股份有限公司", "value": "320455000019"},
{"label": "富邦华一银行有限公司", "value": "787290000019"},
{"label": "晋中银行", "value": "313175000011"},
{"label": "华融湘江银行股份有限公司", "value": "313551070008"},
{"label": "曲靖市商业银行", "value": "313736000019"},
{"label": "陕西省农村信用社联合社资金清算中心", "value": "402791000010"},
{"label": "乌海银行股份有限公司", "value": "313193057846"},
{"label": "无锡农村商业银行股份有限公司", "value": "314302066666"},
{"label": "贵州省农村信用社联合社", "value": "402701002999"},
{"label": "云南红塔银行股份有限公司", "value": "313741095715"},
{"label": "盛京银行清算中心(不对外办理业务)", "value": "313221030008"},
{"label": "石河子国民村镇银行有限责任公司", "value": "320902800016"},
{"label": "中德住房储蓄银行", "value": "717110000010"},
{"label": "哈密红星国民村镇银行有限责任公司", "value": "320884000025"},
{"label": "江苏江南农村商业银行股份有限公司(不对外)", "value": "314304099999"},
{"label": "新疆绿洲国民村镇银行有限责任公司", "value": "320881000011"},
{"label": "伊犁国民村镇银行有限责任公司", "value": "320898000010"},
{"label": "奎屯国民村镇银行有限责任公司", "value": "320898100019"},
{"label": "贵州银行股份有限公司", "value": "313701099012"},
{"label": "广西钦州市钦南国民村镇银行有限责任公司", "value": "320631100016"},
{"label": "广西上林国民村镇银行有限责任公司", "value": "320611000067"},
{"label": "防城港防城国民村镇银行有限责任公司", "value": "320633000027"},
{"label": "遂宁银行", "value": "313662000015"},
{"label": "广西银海国民村镇银行有限责任公司", "value": "320623000015"},
{"label": "克拉玛依金龙国民村镇银行有限责任公司", "value": "320882000013"},
{"label": "昌吉国民村镇银行有限责任公司", "value": "320885099990"},
{"label": "宜宾市商业银行", "value": "313671000017"},
{"label": "华侨永亨银行(中国)有限公司", "value": "621290000011"},
{"label": "北屯国民村镇银行有限责任公司", "value": "320884400011"},
{"label": "五家渠国民村镇银行有限责任公司", "value": "320885800018"},
{"label": "博乐国民村镇银行有限责任公司", "value": "320887000014"},
{"label": "河南省农村信用社联合社资金清算中心(不转汇)", "value": "402491000026"},
{"label": "营口沿海银行股份有限公司", "value": "313228060009"},
{"label": "乐山市商业银行", "value": "313665092924"},
{"label": "深圳前海微众银行股份有限公司", "value": "323584000888"},
{"label": "上海银行股份有限公司", "value": "325290000012"},
{"label": "江西省农村信用社联合社", "value": "402421099990"},
{"label": "成都农商银行", "value": "314651000000"},
{"label": "金华银行股份有限公司", "value": "313338009688"},
{"label": "浙江网商银行股份有限公司", "value": "323331000001"},
{"label": "广西浦北国民村镇银行有限责任公司", "value": "320631500019"},
{"label": "广东省农村信用社联合社", "value": "402581090008"},
{"label": "厦门国际银行股份有限公司", "value": "781393010011"},
{"label": "重庆三峡银行股份有限公司", "value": "321667090019"},
{"label": "天津滨海农村商业银行股份有限公司(不对外办理业务)", "value": "314110000011"},
{"label": "花旗银行(中国)有限公司", "value": "531290088881"},
{"label": "东兴国民村镇银行有限责任公司", "value": "320633100011"},
{"label": "石嘴山银行股份有限公司", "value": "313872097457"},
{"label": "上海华瑞银行", "value": "323290000016"},
{"label": "海南银行股份有限公司", "value": "313641099995"},
{"label": "辽阳银行", "value": "313231000013"},
{"label": "合浦国民村镇银行有限责任公司", "value": "320623100016"},
{"label": "辽宁省农村信用社联合社运营管理部", "value": "402221010013"},
{"label": "丹东银行清算中心", "value": "313226009000"},
{"label": "平果国民村镇银行有限责任公司", "value": "320626400049"},
{"label": "甘肃银行股份有限公司", "value": "313821050016"},
{"label": "衡水银行股份有限公司", "value": "313148053964"}
]

View File

@ -3,6 +3,7 @@ package com.navinfo.outdoor.activity;
import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@ -11,14 +12,25 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.google.gson.Gson;
import com.kongzue.dialog.interfaces.OnDialogButtonClickListener;
import com.kongzue.dialog.util.BaseDialog;
import com.kongzue.dialog.v3.MessageDialog;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.model.Response;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.base.BaseActivity;
import com.navinfo.outdoor.bean.BankPhoneBean;
import com.navinfo.outdoor.bean.CityBean;
import com.navinfo.outdoor.bean.JsonBean;
import com.navinfo.outdoor.bean.UserBean;
import com.navinfo.outdoor.http.DialogCallback;
import com.navinfo.outdoor.http.HttpInterface;
import com.navinfo.outdoor.util.GetJsonDataUtil;
import com.navinfo.outdoor.util.RegexUtil;
import org.json.JSONArray;
@ -42,6 +54,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener {
public static Pattern compile = Pattern.compile("/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$/");
private Button userSave;
private LinearLayout llRegion;
private String userqq;
@Override
protected int getLayout() {
@ -97,21 +110,11 @@ public class UserActivity extends BaseActivity implements View.OnClickListener {
case R.id.ll_region:
showPickerView();
break;
case R.id.et_phone:
String phoneEt = etPhone.getText().toString().trim();
if (TextUtils.isEmpty(phoneEt)) {
Toast.makeText(this, "请输入手机号", Toast.LENGTH_SHORT).show();
return;
}
if (!RegexUtil.isPhone(phoneEt)) {
Toast.makeText(this, "手机格式有误", Toast.LENGTH_SHORT).show();
}
break;
case R.id.edit_qq:
qq();
break;
case R.id.edit_mailbox:
if (isEmail(etMailbox.getText().toString().trim()) && etMailbox.getText().toString().trim().length() <= 31) {
if (isEmail(etMailbox.getText().toString().trim()) && etMailbox.getText().toString().trim().length() > 31) {
Toast.makeText(this, "邮箱验证成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "邮箱格式错误", Toast.LENGTH_SHORT).show();
@ -119,7 +122,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener {
break;
case R.id.btn_save:
final String userphone = etPhone.getText().toString().trim();
final String userqq = etQq.getText().toString().trim();
userqq = etQq.getText().toString().trim();
final String usermailbox = etMailbox.getText().toString().trim();
if (!RegexUtil.isPhone(userphone)) {
Toast.makeText(this, "手机号输入错误", Toast.LENGTH_SHORT).show();
@ -132,10 +135,55 @@ public class UserActivity extends BaseActivity implements View.OnClickListener {
if (usermailbox.length() > 31) {
Toast.makeText(this, "邮箱输入错误", Toast.LENGTH_SHORT).show();
}
netWork();
break;
}
}
private void netWork() {
OkGo
// 请求方式和请求url
.<UserBean>post(HttpInterface.USER_UPDATE)
// 请求的 tag, 主要用于取消对应的请求
.params("pid", "1")
.params("regionId", "530902")//省市区id
.params("qq", userqq)//qq号
.tag(this)
.execute(new DialogCallback<UserBean>(UserBean.class) {
@Override
public void onSuccess(Response<UserBean> response) {
dismissLoadingDialog();
Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss");
if (response.body().equals("0")) {
MessageDialog.show(UserActivity.this, "是否保存", "取消", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override
public boolean onClick(BaseDialog baseDialog, View v) {
// Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show();
return false;
}
});
} else {
MessageDialog.show(UserActivity.this, "是否保存", "确定", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override
public boolean onClick(BaseDialog baseDialog, View v) {
// Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show();
return false;
}
});
}
}
@Override
public void onError(Response<UserBean> response) {
super.onError(response);
dismissLoadingDialog();
Toast.makeText(UserActivity.this, response.message(), Toast.LENGTH_SHORT).show();
Log.d("TAG", "onError: " + response.message());
}
});
}
private static String qq() {
String qq = "23412312";
String regex = "[1-9][0-9]{4,11}";

View File

@ -0,0 +1,70 @@
package com.navinfo.outdoor.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.bean.BankPathBean;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class BankAdapter extends RecyclerView.Adapter<BankAdapter.ViewHolder> {
private List<BankPathBean> bankPathBeans ;
private Context context;
public BankAdapter(List<BankPathBean> bankPathBeans, Context context) {
this.bankPathBeans = bankPathBeans;
this.context = context;
}
@NonNull
@NotNull
@Override
public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(context).inflate(R.layout.bankadapteritem, parent, false);
return new ViewHolder(inflate);
}
@Override
public void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position) {
holder.tvitem.setText(bankPathBeans.get(position).getLabel());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBankClick.onClick(position);
}
});
}
@Override
public int getItemCount() {
return bankPathBeans.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
TextView tvitem;
public ViewHolder(@NonNull @NotNull View itemView) {
super(itemView);
tvitem = itemView.findViewById(R.id.tv_bank);
}
}
public interface OnBankClick {
void onClick(int pos);
}
private OnBankClick onBankClick;
public void setOnBankClick(OnBankClick onBankClick) {
this.onBankClick = onBankClick;
}
}

View File

@ -0,0 +1,23 @@
package com.navinfo.outdoor.bean;
public class BankPathBean {
private String label;
private String value;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

View File

@ -0,0 +1,32 @@
package com.navinfo.outdoor.bean;
public class BankPhoneBean {
private Integer code;
private String message;
private Integer body;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Integer getBody() {
return body;
}
public void setBody(Integer body) {
this.body = body;
}
}

View File

@ -0,0 +1,32 @@
package com.navinfo.outdoor.bean;
public class UserBean {
private Integer code;
private String message;
private Integer body;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Integer getBody() {
return body;
}
public void setBody(Integer body) {
this.body = body;
}
}

View File

@ -1,13 +1,42 @@
package com.navinfo.outdoor.fragment;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.gson.Gson;
import com.kongzue.dialog.interfaces.OnDialogButtonClickListener;
import com.kongzue.dialog.util.BaseDialog;
import com.kongzue.dialog.v3.MessageDialog;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.model.Response;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.adapter.BankAdapter;
import com.navinfo.outdoor.base.BaseFragment;
import com.navinfo.outdoor.bean.BankPathBean;
import com.navinfo.outdoor.bean.BankPhoneBean;
import com.navinfo.outdoor.http.DialogCallback;
import com.navinfo.outdoor.http.HttpInterface;
import com.navinfo.outdoor.util.GetJsonDataUtil;
import com.navinfo.outdoor.util.PhotoPathUtil;
import org.json.JSONArray;
import java.io.File;
import java.util.ArrayList;
import static android.app.Activity.RESULT_OK;
/**
* 收款信息
@ -17,14 +46,23 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
private ImageView ivGathering, imageBank;
private Button btnBank;
private TextView tvBank;
private TextView tvName;
private EditText etBankNum;
private ImageView gatheringCamera;
private String gatheringPath;
private ArrayList<File> gatheringList;
public static GatheringFragment newInstance(Bundle bundle) {
GatheringFragment fragment = new GatheringFragment();
fragment.setArguments(bundle);
return fragment;
} @Override
}
@Override
protected int getLayout() {
return R.layout.gathering_fragment;
}
@Override
@ -33,8 +71,15 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
ivGathering = findViewById(R.id.iv_gathering);
ivGathering.setOnClickListener(this::onClick);
imageBank = findViewById(R.id.iv_bank);
imageBank.setOnClickListener(this::onClick);
tvBank = findViewById(R.id.tv_bank);
tvBank.setOnClickListener(this::onClick);
btnBank = findViewById(R.id.btn_bank);
btnBank.setOnClickListener(this::onClick);
tvName = (TextView) findViewById(R.id.tv_name);
etBankNum = (EditText) findViewById(R.id.et_bank_num);
gatheringCamera = (ImageView) findViewById(R.id.gathering_camera);
gatheringCamera.setOnClickListener(this::onClick);
}
@Override
@ -44,13 +89,134 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe
@Override
public void onClick(View v) {
switch (v.getId()){
switch (v.getId()) {
case R.id.iv_gathering:
getActivity().finish();
break;
case R.id.et_bank_num:
break;
case R.id.iv_bank:
String bankJson = new GetJsonDataUtil().getJson(getContext(), "bank.json");//获取assets目录下的json文件数据
ArrayList<BankPathBean> jsonBean = parseData(bankJson);//用Gson 转成实体
Dialog dialog = new Dialog(getContext());
//弹窗点击周围空白处弹出层自动消失弹窗消失(false时为点击周围空白处弹出层不自动消失)
dialog.setCanceledOnTouchOutside(true);
//将布局设置给Dialog
dialog.setContentView(R.layout.bank_item);
RecyclerView rlvBank = dialog.findViewById(R.id.rlv_bank);
rlvBank.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));
rlvBank.setLayoutManager(new LinearLayoutManager(getContext()));
BankAdapter bankAdapter = new BankAdapter(jsonBean, getContext());
rlvBank.setAdapter(bankAdapter);
bankAdapter.setOnBankClick(new BankAdapter.OnBankClick() {
@Override
public void onClick(int pos) {
tvBank.setText(jsonBean.get(pos).getLabel());
bankAdapter.notifyDataSetChanged();
dialog.dismiss();
}
});
Window window = dialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.BOTTOM;
wlp.width = WindowManager.LayoutParams.MATCH_PARENT;
wlp.height = 1000;
window.setAttributes(wlp);
dialog.show();
break;
case R.id.btn_bank:
gatheringNetWork();
break;
case R.id.gathering_camera:
Intent gatheringNumber = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(gatheringNumber, 400);
break;
}
}
private void gatheringNetWork() {
gatheringList = new ArrayList<>();
File gatheringFile = new File(gatheringPath);
if (!gatheringFile.exists()) {
Toast.makeText(getContext(), "身份证照片不能为空", Toast.LENGTH_SHORT).show();
return;
}
gatheringList.add(gatheringFile);
String etBankAccount = etBankNum.getText().toString().trim();
if (etBankAccount == null || etBankAccount.equals("")) {
Toast.makeText(getContext(), "银行卡号不能为空", Toast.LENGTH_SHORT).show();
return;
}
OkGo
// 请求方式和请求url
.<BankPhoneBean>post(HttpInterface.USER_BANKCARD_UP_DATA)
// 请求的 tag, 主要用于取消对应的请求
.params("userid", "1")
.params("bankAccount", "123456")//银行id
.params("idNumber", etBankAccount)//银行卡号
.addFileParams("file", gatheringList)//银行卡拍照
.tag(this)
.execute(new DialogCallback<BankPhoneBean>(BankPhoneBean.class) {
@Override
public void onSuccess(Response<BankPhoneBean> response) {
dismissLoadingDialog();
Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss");
if (response.body().equals("0")) {
MessageDialog.show((AppCompatActivity) getActivity(), "是否绑定银行卡", "取消", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override
public boolean onClick(BaseDialog baseDialog, View v) {
// Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show();
return false;
}
});
} else {
MessageDialog.show((AppCompatActivity) getActivity(), "是否绑定银行卡", "确定", "确定", "取消").setOkButton(new OnDialogButtonClickListener() {
@Override
public boolean onClick(BaseDialog baseDialog, View v) {
// Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show();
return false;
}
});
}
}
@Override
public void onError(Response<BankPhoneBean> response) {
super.onError(response);
dismissLoadingDialog();
Toast.makeText(getActivity(), response.message(), Toast.LENGTH_SHORT).show();
Log.d("TAG", "onError: " + response.message());
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 400 && resultCode == RESULT_OK) {
gatheringPath = PhotoPathUtil.getTakePhotoPath(data, "e");
return;
}
}
//所属银行解析
public ArrayList<BankPathBean> parseData(String result) {//Gson 解析
ArrayList<BankPathBean> detail = new ArrayList<>();
try {
JSONArray data = new JSONArray(result);
Gson gson = new Gson();
for (int i = 0; i < data.length(); i++) {
BankPathBean bankPath = gson.fromJson(data.optJSONObject(i).toString(), BankPathBean.class);
detail.add(bankPath);
}
} catch (Exception e) {
e.printStackTrace();
}
return detail;
}
}

View File

@ -44,6 +44,9 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
private EditText etNamePhone;
private String takePhotoPath1;//身份证正面照片路径
private String takePhotoPath2;//身份证反面照片路径
private ImageView ivAttestation3;
private String takePhotoPath3;
private ArrayList<File> takePhoneList;
public static UserAttestationFragment newInstance(Bundle bundle) {
@ -74,6 +77,8 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
ivAttestation1.setOnClickListener(this);
ivAttestation2 = findViewById(R.id.iv_attestation2);
ivAttestation2.setOnClickListener(this);
ivAttestation3 = findViewById(R.id.iv_attestation3);
ivAttestation3.setOnClickListener(this);
btnAttestation = (Button) findViewById(R.id.btn_attestation);
btnAttestation.setOnClickListener(this::onClick);
etAttestationName = (EditText) findViewById(R.id.et_attestationName);
@ -94,41 +99,51 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
Intent ivAttestation2 = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(ivAttestation2, 200);
break;
case R.id.iv_attestation3:
Intent ivAttestation3 = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(ivAttestation3, 300);
break;
case R.id.btn_attestation:
if (etAttestationName == null || etAttestationName.equals("")) {
if (etAttestationName.getText().toString() == null || etAttestationName.getText().toString().equals("")) {
Toast.makeText(getContext(), "姓名不能为空,请输入姓名", Toast.LENGTH_SHORT).show();
return;
}
if (etNamePhone == null || etNamePhone.equals("")) {
if (etNamePhone.getText().toString() == null || etNamePhone.getText().toString().equals("")) {
Toast.makeText(getContext(), "身份证号不能为空,请输入身份证号", Toast.LENGTH_SHORT).show();
return;
}
// if (takePhoneList.size()<=0) {
// Toast.makeText(getContext(), "身份证照不能为空", Toast.LENGTH_SHORT).show();
// return;
// }
nameAuthentication();
break;
}
}
private void nameAuthentication() {
ArrayList<File> takePhoneList = new ArrayList<>();
takePhoneList = new ArrayList<>();
File takePhotoFile1 = new File(takePhotoPath1);
File takePhotoFile2 = new File(takePhotoPath2);
if (!takePhotoFile1.exists() || !takePhotoFile2.exists()) {
File takePhotoFile3 = new File(takePhotoPath3);
if (!takePhotoFile1.exists() || !takePhotoFile2.exists() ||!takePhotoFile3.exists()){
Toast.makeText(getContext(), "身份证照片不能为空", Toast.LENGTH_SHORT).show();
return;
}
takePhoneList.add(takePhotoFile1);
takePhoneList.add(takePhotoFile2);
takePhoneList.add(takePhotoFile2);
takePhoneList.add(takePhotoFile3);
OkGo
// 请求方式和请求url
.<NameAuthenticationBean>post(HttpInterface.USER_AUTH_ADD)
// 请求的 tag, 主要用于取消对应的请求
.params("userid", "1")
.params("name", "李心榕")
.params("idnum", "123456")
.addFileParams("file",takePhoneList)
.params("name", etAttestationName.getFreezesText())
.params("idnum", etNamePhone.getFreezesText())
.addFileParams("file", takePhoneList)
.tag(this)
.execute(new DialogCallback<NameAuthenticationBean>(NameAuthenticationBean.class) {
@Override
@ -168,13 +183,19 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK) {
takePhotoPath1 = PhotoPathUtil.getTakePhotoPath(data,"a");
takePhotoPath1 = PhotoPathUtil.getTakePhotoPath(data, "a");
Bundle extras = data.getExtras();//从Intent中获取附加值
//从附加值中获取返回的图像
Bitmap bitmap = (Bitmap) extras.get("data");
ivAttestation1.setImageBitmap(bitmap);//显示图像
} else if (requestCode == 200 && resultCode == RESULT_OK) {
takePhotoPath2 = PhotoPathUtil.getTakePhotoPath(data,"b");
takePhotoPath2 = PhotoPathUtil.getTakePhotoPath(data, "b");
Bundle extras = data.getExtras();//从Intent中获取附加值
//从附加值中获取返回的图像
Bitmap bitmap = (Bitmap) extras.get("data");
ivAttestation2.setImageBitmap(bitmap);//显示图像
}else if (requestCode == 300 && resultCode == RESULT_OK) {
takePhotoPath3 = PhotoPathUtil.getTakePhotoPath(data, "c");
Bundle extras = data.getExtras();//从Intent中获取附加值
//从附加值中获取返回的图像
Bitmap bitmap = (Bitmap) extras.get("data");

View File

@ -21,10 +21,15 @@ public class HttpInterface {
public static final String IPm4 = "http://172.23.139.4:8001/m4";
public static final String MSG_CONTENT = IPm4 + "/1/msg_content";//发现 -富文本详情页请求
//172.23.139.4:8001/m4/userAuth/add
public static final String USER_AUTH_ADD = IPm4 + "/userAuth/add"; //实名认证
//172.23.139.4:8001/m4/user/update
public static final String USER_UPDATE = IPm4+"/user/update";//用户资料
//172.23.139.4:8001/m4/userBankcard/update
public static final String USER_BANKCARD_UP_DATA = IPm4 + "/userBankcard/update"; //绑定银行卡
}

View File

@ -0,0 +1,6 @@
<vector android:height="24dp" android:tint="#4ADEF3"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path android:fillColor="@android:color/white" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_bank"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/tv_bank"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -41,10 +41,10 @@
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="20dp"
android:background="@drawable/gethering_shape"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:background="@drawable/gethering_shape"
app:layout_constraintTop_toBottomOf="@+id/rl_gathering">
<TextView
@ -90,24 +90,25 @@
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textSize="18sp"
android:gravity="center"
android:text="持 卡 人:"
android:textColor="#333"
android:text="持 卡 人:" />
android:textSize="18sp" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:background="@null"
android:textSize="16sp"
android:layout_height="wrap_content"
android:hint="持卡人姓名" />
android:background="@null"
android:hint="持卡人姓名"
android:textSize="16sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#2196F3"
/>
android:background="#2196F3" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
@ -117,23 +118,41 @@
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textSize="18sp"
android:gravity="center"
android:text="银行卡号:"
android:textColor="#333"
android:text="银行卡号:" />
android:textSize="18sp" />
<EditText
android:id="@+id/et_bank_num"
android:layout_width="wrap_content"
android:background="@null"
android:textSize="16sp"
android:layout_height="match_parent"
android:hint="银行卡号 " />
android:background="@null"
android:hint="银行卡号 "
android:textSize="16sp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="100dp"
android:layout_height="match_parent">
<ImageView
android:id="@+id/gathering_camera"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginBottom="10dp"
android:src="@drawable/ic_baseline_camera"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#2196F3"
/>
android:background="#2196F3" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp"
@ -143,22 +162,23 @@
android:id="@+id/bank"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textSize="18sp"
android:gravity="center"
android:textColor="#333"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="所属银行:" />
android:gravity="center"
android:text="所属银行:"
android:textColor="#333"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_bank"
android:layout_width="wrap_content"
android:textSize="16sp"
android:layout_toRightOf="@id/bank"
android:layout_toLeftOf="@id/iv_bank"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:hint="请选择所属银行" />
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/iv_bank"
android:layout_toRightOf="@id/bank"
android:hint="请选择所属银行"
android:textSize="16sp" />
<ImageView
android:id="@+id/iv_bank"
android:layout_width="50dp"
@ -166,21 +186,22 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:src="@drawable/ic_baseline_arrow"
/>
android:src="@drawable/ic_baseline_arrow_drop" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#2196F3"
/>
android:background="#2196F3" />
<Button
android:id="@+id/btn_bank"
style="@style/user_data_style"
android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="绑定银行卡"
/>
android:layout_marginTop="40dp"
android:text="绑定银行卡" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/rl_attestation"
@ -20,9 +20,9 @@
android:id="@+id/iv_attestation"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="15dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="15dp"
android:padding="15dp"
android:src="@drawable/ic_baseline_arrow" />
<TextView
@ -110,60 +110,129 @@
android:layout_height="150dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/iv_attestation1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@color/colorPrimaryBlue"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/card_zhengmian"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*身份证人像面"
android:textColor="@color/white"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_attestation2"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@mipmap/checkbox" />
<ImageView
android:id="@+id/iv_attestation3"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_attestation1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@color/colorPrimaryBlue"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/iv_attestation1"
app:layout_constraintLeft_toLeftOf="@id/iv_attestation1"
app:layout_constraintRight_toRightOf="@id/iv_attestation1"
app:layout_constraintTop_toTopOf="@id/iv_attestation1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/card_zhengmian" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="*身份证人像面"
android:textColor="@color/white" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_attestation2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@color/colorPrimaryBlue"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/iv_attestation2"
app:layout_constraintLeft_toLeftOf="@id/iv_attestation2"
app:layout_constraintRight_toRightOf="@id/iv_attestation2"
app:layout_constraintTop_toTopOf="@id/iv_attestation2">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/card_fanmian" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="*身份证国徽面"
android:textColor="@color/white" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@mipmap/checkbox" />
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/iv_attestation3"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@color/colorPrimaryBlue"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/iv_attestation3"
app:layout_constraintLeft_toLeftOf="@id/iv_attestation3"
app:layout_constraintBottom_toBottomOf="@id/iv_attestation3"
app:layout_constraintRight_toRightOf="@id/iv_attestation3"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/card_shouchi" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*手持身份证"
android:layout_gravity="center_horizontal"
android:textColor="@color/white"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<View
@ -178,6 +247,5 @@
android:layout_height="match_parent"
android:layout_marginTop="40dp"
android:text="认证" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>