车牌号码识别

This commit is contained in:
lijia 2024-04-16 17:21:45 +08:00
parent 3955e7b9a7
commit a53d5553cd
11 changed files with 1317 additions and 108 deletions

View File

@ -250,6 +250,11 @@
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.account.authteam.EditCaTeamActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<!-- 司机车辆认证相关end -->
<!-- 运单相关start -->
@ -347,7 +352,7 @@
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name=".ui.mine.activity.CarTeamActivity"
android:name=".ui.mine.activity.CarTeamManActivity"
android:configChanges="keyboardHidden|orientation|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
@ -391,10 +396,11 @@
<activity
android:name=".ui.esingn.H5Activity"
android:screenOrientation="portrait"
android:launchMode="singleTask">
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

View File

@ -18,6 +18,7 @@ data class OcrPersonBean(
data class Data(
val face: Face,
val back: Back,
val info: List<CarInfo>,
//银行卡
val bankName: String,
@ -59,6 +60,15 @@ data class Face(
)
data class CarInfo(
val key: String,
val key_loc: String,
val key_prob: String,
val value: String,
val value_loc: String,
val value_prob: String
)
data class DataX(
var address: String = "",
val birthDate: String = "",

View File

@ -13,6 +13,11 @@ fun interface OnOcrPicResultListener {
fun onSuccResult(picPath: PicPath, result: OcrPersonBean?)
}
fun interface OnOcrCarNumListener {
fun onSuccResult(carNum: String)
}
data class PicPath(
var locPic: String, var picPath: String
)

View File

@ -0,0 +1,456 @@
package com.dahe.gldriver.ui.account.authteam
import android.os.Bundle
import android.view.View
import com.dahe.gldriver.R
import com.dahe.gldriver.bean.AuthTeamBean
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.databinding.ActivityAuthTeamBinding
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.ui.HomeActivity
import com.dahe.gldriver.utils.OcrUtils
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.PickerUtils
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.TimeUtil
import com.dahe.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
/**
* @ClassName AuthTeamActivity
* @Author john
* @Date 2024/1/25 16:44
* @Description 个人车队-编辑
*/
class EditCaTeamActivity : BaseActivity<ActivityAuthTeamBinding>(), View.OnClickListener {
private var checkTeamType = 1 //1代表运输公司0代表个人车队
var ossServiceUtil: OssServiceUtil = OssServiceUtil.getInstance()
var upComInfoBean: AuthTeamBean = AuthTeamBean("1")//企业车队
var upPerInfoBean: AuthTeamBean = AuthTeamBean("0")//个人车队
override fun initView(savedInstanceState: Bundle?) {
setStatusBarColor(R.color.white)
setTitleBar("身份认证", true)
binding.run {
rgTeam.setOnCheckedChangeListener { _, i ->
changeTeamType(if (i == binding.rbCom.id) 1 else 0)
}
//营业执照选择。ocr识别
ivBusiness.setOnClickListener {
OcrUtils.getInstance()
.ocrBusinessCard(mContext, this@EditCaTeamActivity) { picPath, result ->
upComInfoBean.businessLicensePhoneUrl = picPath.picPath
result?.data?.run {
upComInfoBean.businessLicenseCreditCode = creditCode
upComInfoBean.businessLicenseEffectiveStart =
TimeUtil.changeDateNoneFormat(validFromDate)
upComInfoBean.businessLicenseEffectiveEnd =
TimeUtil.changeDateNoneFormat(validToDate)
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivBusiness)
}
}
//运输公司 本人身份证
ivComFront.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.face == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivComFront)
result?.data?.face?.data?.run {
etName.setText(name)
etId.setText(idNumber)
upComInfoBean.run {
idcardNo = idNumber
idcardName = name
idcardSex = if (sex == "") "1" else "2"
idcardEthnicity = ethnicity
idcardFrontUrl = picPath.picPath
idcardAddress = address
}
}
}
}
ivComBack.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.back == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivComBack)
result?.data?.back?.data?.run {
upComInfoBean.run {
// idcardEffectiveStart = TimeUtil.changeDateFormat(split[0])
// idcardEffectiveEnd = if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else ""
idcardBackUrl = picPath.picPath
}
if (validPeriod.contains("-")) {
val split = validPeriod.split("-")
tvStart.text = TimeUtil.changeDateFormat(split[0])
tvEnd.text =
if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else ""
}
if (validPeriod?.contains("长期") == true) {
val split = validPeriod.split("长期")
binding.run {
tvStart.text =
TimeUtil.changeDateFormat(split[0])
tvEnd.text = "长期"
}
}
}
}
}
//个人车队 本人身份证
ivFront.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.face == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivFront)
result?.data?.face?.data?.run {
etPerName.setText(name)
etPerId.setText(idNumber)
upPerInfoBean.run {
idcardNo = idNumber
idcardName = name
idcardSex = if (sex == "") "1" else "2"
idcardEthnicity = ethnicity
idcardFrontUrl = picPath.picPath
idcardAddress = address
}
}
}
}
//个人车队 本人身份证
ivBack.setOnClickListener {
OcrUtils.getInstance()
.ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result ->
if (result?.data?.back == null) {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrPerson
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivBack)
result?.data?.back?.data?.run {
upPerInfoBean.run {
idcardBackUrl = picPath.picPath
}
if (validPeriod.contains("-")) {
val split = validPeriod.split("-")
tvPerStart.text = TimeUtil.changeDateFormat(split[0])
tvPerEnd.text =
if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else ""
}
if (validPeriod?.contains("长期") == true) {
val split = validPeriod.split("长期")
binding.run {
tvPerStart.text =
TimeUtil.changeDateFormat(split[0])
tvPerEnd.text = "长期"
}
}
}
}
}
/**
* 个人银行卡
*/
ivBank.setOnClickListener {
OcrUtils.getInstance()
.ocrBankCard(mContext, this@EditCaTeamActivity) { picPath, result ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivBank)
result?.data?.run {
etPerBankId.setText(cardNumber)
tvPerBankName.setText(bankName)
upPerInfoBean.run {
captainBankcardNumber = cardNumber
captainBankcardPhotoUrl = picPath.picPath
}
}
}
}
//道路运输许可证
ivRoad.setOnClickListener {
OcrUtils.getInstance()
.noOcrUpPic(mContext, this@EditCaTeamActivity) { picPath, ocrResult ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivRoad)
upComInfoBean.roadLicensePhotoUrl = picPath.picPath
}
}
//公司银行卡
ivComBank.setOnClickListener {
OcrUtils.getInstance()
.ocrBankCard(mContext, this@EditCaTeamActivity) { picPath, result ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivComBank)
result?.data?.run {
binding.let {
it.etComBankId.setText(cardNumber)
it.etComBankName.setText(bankName)
}
upComInfoBean.run {
captainBankcardNumber = cardNumber
captainBankcardName = bankName
captainBankcardPhotoUrl = picPath.picPath
}
}
}
}
tvComDate.setOnClickListener {
PickerUtils.getInstance()
.showDateSim(this@EditCaTeamActivity, "请选择有效期至") { date ->
tvComDate.text = date
}
}
tvPerStart.setOnClickListener {
PickerUtils.getInstance()
.showDate(this@EditCaTeamActivity, "请选择起始日期") { date ->
tvPerStart.text = date
}
}
tvPerEnd.setOnClickListener {
PickerUtils.getInstance()
.showDateSim(this@EditCaTeamActivity, "请选择有效期至") { date ->
tvPerEnd.text = date
}
}
btnOk.setOnClickListener(this@EditCaTeamActivity)
/**
* 运输公司身份证开始日期
*/
tvStart.setOnClickListener {
PickerUtils.getInstance()
.showDate(this@EditCaTeamActivity, "请选择起始日期") { date ->
tvStart.text = date
}
}
/**
* 运输公司身份证截止日期
*/
tvEnd.setOnClickListener {
PickerUtils.getInstance().showDateSim(this@EditCaTeamActivity, "请选择有效期至") {
tvEnd.text = it
}
}
}
}
override fun initDate() {
}
private fun changeTeamType(type: Int) {
checkTeamType = type
if (1 == checkTeamType) {
binding.llCom.visibility = View.VISIBLE
binding.llPerson.visibility = View.GONE
} else {
binding.llCom.visibility = View.GONE
binding.llPerson.visibility = View.VISIBLE
}
}
override fun onClick(view: View?) {
super.onClick(view)
when (view?.id) {
binding.btnOk.id -> {
subMit()
}
// binding.ivBusiness.id -> {}
// binding.ivComFront.id -> {}
// binding.ivComBack.id -> {}
// binding.ivComBank.id -> {}
// binding.tvComDate.id -> {}
// binding.tvPerStart.id -> {}
// binding.ivFront.id -> {}
// binding.ivBack.id -> {}
// binding.ivBank.id -> {}
// binding.ivRoad.id -> {}
}
}
private fun subMit() {
binding.run {
if (checkTeamType == 1) {//运输公司
//道路运输相关
upComInfoBean.roadLicense = etRootId.text.toString().trim()
upComInfoBean.roadLicenseValidity = tvComDate.text.toString().trim()
//银行卡相关信息
upComInfoBean.captainBankcardNumber = etComBankId.text.toString().trim()
upComInfoBean.captainBankcardName = etComBankName.text.toString().trim()
//身份证相关信息
upComInfoBean.idcardName = etName.text.toString().trim()
upComInfoBean.idcardNo = etId.text.toString().trim()
upComInfoBean.idcardEffectiveStart = tvStart.text.toString().trim()
if ("长期" == tvEnd.text.toString().trim()) {
upComInfoBean.idcardIsEndless = "1"
} else {
upComInfoBean.idcardEffectiveEnd = tvEnd.text.toString().trim()
}
if (upComInfoBean.roadLicense.isNullOrEmpty() || upComInfoBean.roadLicenseValidity.isNullOrEmpty() ||
upComInfoBean.businessLicensePhoneUrl.isNullOrEmpty() || upComInfoBean.roadLicensePhotoUrl.isNullOrEmpty() ||
upComInfoBean.captainBankcardPhotoUrl.isNullOrEmpty() || upComInfoBean.idcardFrontUrl.isNullOrEmpty() ||
upComInfoBean.idcardBackUrl.isNullOrEmpty() ||
upComInfoBean.captainBankcardNumber.isNullOrEmpty() || upComInfoBean.captainBankcardName.isNullOrEmpty() ||
upComInfoBean.idcardName.isNullOrEmpty() || upComInfoBean.idcardNo.isNullOrEmpty() ||
upComInfoBean.idcardEffectiveStart.isNullOrEmpty()
) {
ToastUtils.showToast(mContext, "请完善信息")
return@run
}
} else {
//身份证相关信息
upPerInfoBean.idcardNo = etPerId.text.toString().trim()
upPerInfoBean.idcardName = etPerName.text.toString().trim()
upPerInfoBean.idcardEffectiveStart = tvPerStart.text.toString().trim()
if ("长期" == tvPerEnd.text.toString().trim()) {
upPerInfoBean.idcardIsEndless = "1"
} else {
upPerInfoBean.idcardEffectiveEnd = tvEnd.text.toString().trim()
}
//银行卡相关信息
upPerInfoBean.captainBankcardNumber = etPerBankId.text.toString().trim()
upPerInfoBean.captainBankcardName = tvPerBankName.text.toString().trim()
if (upPerInfoBean.idcardNo.isNullOrEmpty() || upPerInfoBean.idcardName.isNullOrEmpty() ||
upPerInfoBean.idcardEffectiveStart.isNullOrEmpty() || upPerInfoBean.captainBankcardPhotoUrl.isNullOrEmpty() ||
upPerInfoBean.idcardFrontUrl.isNullOrEmpty() || upPerInfoBean.idcardBackUrl.isNullOrEmpty() ||
upPerInfoBean.captainBankcardNumber.isNullOrEmpty() || upPerInfoBean.captainBankcardName.isNullOrEmpty()
) {
ToastUtils.showToast(mContext, "请完善信息")
return@run
}
}
DataManager.getInstance()
.authenticationCaptain(if (checkTeamType == 1) upComInfoBean else upPerInfoBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(
mContext,
object : RxHttpCallBack<Any>(this@EditCaTeamActivity) {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, HomeActivity::class.java)
}
})
)
}
}
private fun selBankPic(picType: Int = 0) {
PopsUtils.getInstance().showSimSelPic(mContext) { it ->
ossServiceUtil.run {
asyncPutImage(it[0].realPath, this@EditCaTeamActivity)
setResultCallBack { data, oldPath ->
DataManager.getInstance().recognizeBankCard(oldPath)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(mContext,
object : RxHttpCallBack<OcrPersonBean>(this@EditCaTeamActivity) {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t)
t.data.data?.run {
// bankInfo.driverBankcardPhotoUrl = oldPath
binding.let {
it.etComBankId.setText(cardNumber)
it.etComBankName.setText(bankName)
}
}
}
})
)
}
}
ImageLoader.getInstance()
.loadRoundImage(mContext, it[0].realPath, 12, binding.ivComBank)
}
}
private fun selPerPic() {
PopsUtils.getInstance().showSimSelPic(mContext) {
ImageLoader.getInstance().loadRoundImage(mContext, it[0].realPath, 12, binding.ivFront)
ossServiceUtil.run {
asyncPutImage(it[0].realPath, this@EditCaTeamActivity)
setResultCallBack { data, oldPath ->
DataManager.getInstance().recognizeIdcard(oldPath)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(mContext,
object : RxHttpCallBack<OcrPersonBean>(this@EditCaTeamActivity) {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t)
t.data.data.face?.data.let {
it?.run {
// perInfoBean.run {
// idcardNo = idNumber
// idcardName = name
// idcardSex = if (sex == "男") "1" else "2"
// }
}
binding.run {
etName.setText(it?.idNumber)
etId.setText(it?.name)
}
}
}
})
)
}
}
}
}
}

View File

@ -6,12 +6,14 @@ import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.GridItemAdapter
import com.dahe.gldriver.base.WebActivity
import com.dahe.gldriver.bean.GridBean
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.databinding.FragmentMineBinding
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.ui.account.authperson.AuthPartyActivity
import com.dahe.gldriver.ui.mine.activity.CarTeamActivity
import com.dahe.gldriver.ui.mine.activity.CarTeamManActivity
import com.dahe.gldriver.ui.mine.activity.CarsManActivity
import com.dahe.gldriver.ui.mine.activity.ComProActivity
import com.dahe.gldriver.ui.mine.activity.DriverTeamsActivity
@ -29,14 +31,12 @@ import com.dahe.mylibrary.base.BaseFragment
import com.dahe.mylibrary.callback.RefreshCallBack
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.BaseUtils
import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.PhoneFormatCheckUtils
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.tencent.bugly.crashreport.CrashReport
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kotlin.system.exitProcess
class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener, RefreshCallBack {
private val tools = mutableListOf(
@ -107,7 +107,7 @@ class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener,
when (pos) {
0 -> {
if (SPUtils.instance.getUserInfo(mContext)?.isCarCaptain == "1") {//车队长
ActivityUtils.startActivity(mContext, CarTeamActivity::class.java)
ActivityUtils.startActivity(mContext, CarTeamManActivity::class.java)
} else {//司机
ActivityUtils.startActivity(mContext, DriverTeamsActivity::class.java)
}
@ -176,7 +176,6 @@ class MineFragment : BaseFragment<FragmentMineBinding>(), View.OnClickListener,
7 -> {
ActivityUtils.startActivity(mContext,SettingActivity::class.java)
// exitProcess(0)
}
}

View File

@ -15,13 +15,11 @@ import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.ui.mine.InviteRecordActivity
import com.dahe.gldriver.ui.mine.fragment.CarsManFragment
import com.dahe.gldriver.ui.mine.fragment.DriversManFragment
import com.dahe.gldriver.ui.waybill.fragment.AllWaybillFragment
import com.dahe.gldriver.utils.SPUtils
import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import net.lucode.hackware.magicindicator.FragmentContainerHelper
@ -40,7 +38,7 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorT
* @Date 2024/2/6 16:38
* @Description 车队长-车队管理
*/
class CarTeamActivity : BaseActivity<ActivityCarTeamBinding>() {
class CarTeamManActivity : BaseActivity<ActivityCarTeamBinding>() {
private val mFragmentContainerHelper = FragmentContainerHelper()
var mFragments = mutableListOf<Fragment>()
@ -127,7 +125,8 @@ class CarTeamActivity : BaseActivity<ActivityCarTeamBinding>() {
val data = t.data
binding.run {
tvCapName.text = data.captainName
tvStatu.text = if (data.isRealname == "0") "未实名" else "已实名"
tvStatu.text =
if (data.auditStatus == "100002") "审核中" else if (data.auditStatus == "100003") "审核通过" else if (data.auditStatus == "100001") "待认证" else "待认证"
ImageLoader.getInstance().loadCircleImage(mContext, data.avatar, ivHead)
}
}

View File

@ -10,10 +10,12 @@ import com.dahe.gldriver.R
import com.dahe.gldriver.adapter.CarsAdapter
import com.dahe.gldriver.base.AppConfig
import com.dahe.gldriver.bean.CarBean
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.databinding.ActivityCarsManBinding
import com.dahe.gldriver.net.BaseObserver
import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.ui.account.authperson.AuthDrivingActivity
import com.dahe.gldriver.utils.CommonPopUtils
import com.dahe.mylibrary.base.BaseActivity
@ -21,7 +23,9 @@ import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
@ -83,18 +87,6 @@ class CarsManActivity : BaseActivity<ActivityCarsManBinding>() {
}
btnOk.setOnClickListener {
// PopsUtils.getInstance().showSimSelPic(mContext){
// DataManager.getInstance().recognizeCarNumber(oldPath)
// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
// .subscribe(BaseObserver(mContext,object : RxHttpCallBack<OcrPersonBean>(){
// override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
// super.onSuccess(t)
// println("fff")
// }
// }))
// }
ActivityUtils.startActivity(mContext, AuthDrivingActivity::class.java)
}
}

View File

@ -15,6 +15,7 @@ import com.dahe.gldriver.net.DataManager
import com.dahe.gldriver.net.RxHttpCallBack
import com.dahe.gldriver.oss.OssServiceUtil
import com.dahe.gldriver.utils.GDLocationUtils
import com.dahe.gldriver.utils.OcrUtils
import com.dahe.gldriver.utils.OrderUtils
import com.dahe.mylibrary.adapter.GridImageAdapter
import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener
@ -23,6 +24,7 @@ import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ActivityUtils
import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.PopsUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.dahe.mylibrary.weight.FullyGridLayoutManager
import com.dahe.mylibrary.weight.GlideEngine
import com.luck.picture.lib.basic.PictureSelector
@ -92,25 +94,25 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
OssServiceUtil.getInstance().run {
asyncPutImage(it[0].realPath, this@WaybillUpPicActivity)
setResultCallBack { data, oldPath ->
// DataManager.getInstance().recognizeCarNumber(oldPath)
// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
// .subscribe(BaseObserver(mContext,object : RxHttpCallBack<OcrPersonBean>(){
// override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
// super.onSuccess(t)
// println("fff")
// }
// }))
picBean = WaybillPhoto()
picBean.run {
photoUrl = oldPath
this.type = if (type == 1) "1" else "2"
}
if (upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" } == null) {
upBean.waybillPhotoList.add(picBean)
} else {
upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" }!!.photoUrl =
oldPath
OcrUtils.getInstance().ocrCarNumber(mContext, oldPath, this@WaybillUpPicActivity) { carNum ->
if (!carNum.isNullOrEmpty()) {
picBean = WaybillPhoto()
picBean.run {
photoUrl = oldPath
this.type = if (type == 1) "1" else "2"
}
if (upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" } == null) {
upBean.waybillPhotoList.add(picBean)
} else {
upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" }!!.photoUrl =
oldPath
}
} else {
ToastUtils.showToast(
mContext,
"未识别出车牌号码,请重新拍摄"
)
}
}
}
}
@ -266,7 +268,8 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
intent.extras)
intent.extras
)
//装货成功-开启轨迹上传
OrderUtils.getInstance().upLocation(mContext)
} else {
@ -274,7 +277,8 @@ class WaybillUpPicActivity : BaseActivity<ActivityWaybillUppicBinding>() {
ActivityUtils.startActivity(
mContext,
WaybillSuccActivity::class.java,
intent.extras)
intent.extras
)
}
}
}))

View File

@ -3,6 +3,7 @@ package com.dahe.gldriver.utils
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import com.dahe.gldriver.bean.OcrPersonBean
import com.dahe.gldriver.callback.OnOcrCarNumListener
import com.dahe.gldriver.callback.OnOcrPicResultListener
import com.dahe.gldriver.callback.PicPath
import com.dahe.gldriver.net.BaseObserver
@ -60,7 +61,7 @@ class OcrUtils private constructor() {
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast(mContext, "图片识别失败,请重新上传")
ToastUtils.showToast(mContext, "图片识别失败,请重新上传")
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
@ -109,10 +110,10 @@ class OcrUtils private constructor() {
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
@ -167,10 +168,10 @@ class OcrUtils private constructor() {
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
@ -223,10 +224,10 @@ class OcrUtils private constructor() {
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
@ -279,10 +280,10 @@ class OcrUtils private constructor() {
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
@ -300,54 +301,37 @@ class OcrUtils private constructor() {
* */
fun ocrCarNumber(
context: Context,
picPath: String,
activity: AppCompatActivity,
listener: OnOcrPicResultListener
listener: OnOcrCarNumListener
) {
PopsUtils.getInstance().showSimSelPic(context) { result ->
//上传oss得到图片地址
OssServiceUtil.getInstance().run {
asyncPutImage(result[0].realPath, activity)
setResultCallBack { data, oldPath ->
DataManager.getInstance().recognizeCarNumber(oldPath)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(
context,
object : RxHttpCallBack<OcrPersonBean>(activity) {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t)
t.data?.let {
listener.onSuccResult(
PicPath(
result[0].realPath,
oldPath
), it
)
}
}
DataManager.getInstance().recognizeCarNumber(picPath)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
BaseObserver(activity,
object : RxHttpCallBack<OcrPersonBean>() {
override fun onSuccess(t: CommonResponseBean<OcrPersonBean>) {
super.onSuccess(t)
if (t.data.data.info != null && t.data.data.info.isNotEmpty())
listener.onSuccResult(t.data.data.info[0].value)
}
override fun onCodeError(
mContext: Context?,
t: CommonResponseBean<OcrPersonBean>
) {
override fun onCodeError(
mContext: Context?,
t: CommonResponseBean<OcrPersonBean>
) {
// super.onCodeError(mContext, t)
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
// if (t.msg.contains("code: 400, The image type does not match the API operation")) {
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
// } else {
// ToastUtils.showToast(mContext, t.msg)
// }
}
}
})
)
}
}
}
LoadingUtils.instance.dissLoading()
if (t.code == 500) {
ToastUtils.showToast(
mContext,
"图片识别失败,请重新上传"
)
}
}
})
)
}

View File

@ -0,0 +1,754 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/common_toolbar"></include>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 运输公司 -->
<LinearLayout
android:id="@+id/llCom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_7"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传营业执照"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivBusiness"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_58"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/business"></ImageView>
<TextView
android:id="@+id/tvBTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ivBusiness"
android:layout_marginLeft="@dimen/dp_14"
android:text="上传道路运输经营许可证"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivRoad"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_below="@+id/tvBTitle"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_22"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/road"></ImageView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ivRoad"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:paddingBottom="@dimen/dp_18">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:text="道路许可证号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etRootId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入经营许可证号"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="王海生"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_50"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:text="有效期至"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvComDate"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:drawableRight="@drawable/right_gray"
android:drawablePadding="@dimen/dp_6"
android:gravity="right|center_vertical"
android:hint="请选择有效期至"
android:paddingLeft="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传公司账户"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivComBank"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bank_card"></ImageView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_26"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_90"
android:layout_height="wrap_content"
android:text="银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etComBankId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:text="开户银行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etComBankName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入开户银行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_14"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传本人身份证(必填)"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20">
<ImageView
android:id="@+id/ivComFront"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_marginLeft="@dimen/dp_8"
android:background="@drawable/person_front" />
<ImageView
android:id="@+id/ivComBack"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_8"
android:background="@drawable/person_back" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_90"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="姓名"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入姓名"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="身份证"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入身份证号码"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/llStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效开始日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvStart"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择开始日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/llStart"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效结束日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvEnd"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择结束日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" />
</LinearLayout>
<!-- 个人车队 -->
<LinearLayout
android:id="@+id/llPerson"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传本人身份证(必填)"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivFront"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_58"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/person_front"></ImageView>
<ImageView
android:id="@+id/ivBack"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_58"
android:layout_marginRight="@dimen/dp_8"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/person_back"></ImageView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ivFront"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_8"
android:layout_marginRight="@dimen/dp_8"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_18">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="姓名"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etPerName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="王海生"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="身份证"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etPerId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="412826196205220056"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效开始日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvPerStart"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择开始日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/start"
android:drawablePadding="@dimen/dp_2"
android:text="有效结束日期"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<TextView
android:id="@+id/tvPerEnd"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_weight="1"
android:background="@drawable/shape_phone_bg"
android:gravity="right|center_vertical"
android:hint="请选择结束日期"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"
tools:text="1990-05-24"></TextView>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/dp_8">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_16">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_16"
android:text="上传本人银行卡"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"></TextView>
<ImageView
android:id="@+id/ivBank"
android:layout_width="@dimen/dp_155"
android:layout_height="@dimen/dp_97"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:background="@drawable/bank_card"></ImageView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_26"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_90"
android:layout_height="wrap_content"
android:text="银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/etPerBankId"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请输入银行卡号"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_14"
android:orientation="horizontal">
<TextView
android:layout_width="@dimen/dp_70"
android:layout_height="wrap_content"
android:text="开户银行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></TextView>
<EditText
android:id="@+id/tvPerBankName"
android:layout_width="0dp"
android:layout_height="@dimen/dp_34"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_8"
android:layout_weight="1"
android:background="@null"
android:gravity="right|center_vertical"
android:hint="请选择开户行"
android:textColor="@color/black"
android:textSize="@dimen/sp_15"></EditText>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10" />
</LinearLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_70"
android:background="@color/white"
android:gravity="center"
android:paddingLeft="@dimen/dp_15"
android:paddingRight="@dimen/dp_15">
<Button
android:id="@+id/btnOk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_btn"
android:text="提交审核"
android:textColor="@color/white"
android:textSize="@dimen/sp_17">
</Button>
</LinearLayout>
</LinearLayout>

View File

@ -55,7 +55,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:text="张学友"
tools:text="张学友"
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:textStyle="bold" />