封版羽声,作为最后的基础版
This commit is contained in:
@@ -10,15 +10,16 @@ android {
|
||||
defaultConfig {
|
||||
applicationId "com.qxcm.qxlive"
|
||||
minSdk 24
|
||||
targetSdk 35
|
||||
targetSdk 33
|
||||
versionCode Integer.parseInt(project.findProperty("APP_VERSION_CODE"))
|
||||
versionName project.findProperty("APP_VERSION_NAME")
|
||||
|
||||
multiDexEnabled true
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
ndk {
|
||||
//设置支持的so库
|
||||
abiFilters 'armeabi-v7a', 'arm64-v8a'
|
||||
abiFilters 'arm64-v8a'
|
||||
// abiFilters 'armeabi-v7a', 'arm64-v8a'
|
||||
}
|
||||
|
||||
javaCompileOptions {
|
||||
@@ -54,7 +55,7 @@ android {
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
signingConfig signingConfigs.release
|
||||
|
||||
@@ -117,11 +118,17 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = '17'
|
||||
}
|
||||
dexOptions {
|
||||
dexInProcess true
|
||||
preDexLibraries true
|
||||
javaMaxHeapSize "6g"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
|
||||
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
|
||||
// implementation fileTree(dir: '../LocalAar/aar_libs', include: ['*.jar', '*.aar'] dir: 'libs')
|
||||
|
||||
implementation libs.appcompat
|
||||
implementation libs.material
|
||||
@@ -137,6 +144,10 @@ dependencies {
|
||||
implementation files('libs/logger-2.2.2-release.aar')
|
||||
implementation files('libs/main-2.2.3-release.aar')
|
||||
|
||||
implementation files('libs/WbCloudFaceLiveSdk-face-v6.6.2-8e4718fc.aar')
|
||||
implementation files('libs/WbCloudNormal-v5.1.10-4e3e198.aar')
|
||||
|
||||
|
||||
implementation (libs.arouter.api.v150)
|
||||
//annotationProcessor
|
||||
annotationProcessor libs.arouter.compiler
|
||||
|
||||
BIN
app/libs/WbCloudFaceLiveSdk-face-v6.6.2-8e4718fc.aar
Normal file
BIN
app/libs/WbCloudFaceLiveSdk-face-v6.6.2-8e4718fc.aar
Normal file
Binary file not shown.
BIN
app/libs/WbCloudNormal-v5.1.10-4e3e198.aar
Normal file
BIN
app/libs/WbCloudNormal-v5.1.10-4e3e198.aar
Normal file
Binary file not shown.
212091
app/proguard/mapping.txt
212091
app/proguard/mapping.txt
File diff suppressed because it is too large
Load Diff
515408
app/proguard/seeds.txt
515408
app/proguard/seeds.txt
File diff suppressed because it is too large
Load Diff
37
app/release/release/output-metadata.json
Normal file
37
app/release/release/output-metadata.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.qxcm.qxlive",
|
||||
"variantName": "release",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 9,
|
||||
"versionName": "1.0.1.7",
|
||||
"outputFile": "羽声_1.0.1.7_9.apk"
|
||||
}
|
||||
],
|
||||
"elementType": "File",
|
||||
"baselineProfiles": [
|
||||
{
|
||||
"minApi": 28,
|
||||
"maxApi": 30,
|
||||
"baselineProfiles": [
|
||||
"baselineProfiles/1/羽声_1.0.1.7_9.dm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"minApi": 31,
|
||||
"maxApi": 2147483647,
|
||||
"baselineProfiles": [
|
||||
"baselineProfiles/0/羽声_1.0.1.7_9.dm"
|
||||
]
|
||||
}
|
||||
],
|
||||
"minSdkVersionForDexing": 24
|
||||
}
|
||||
@@ -105,11 +105,16 @@
|
||||
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
|
||||
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
|
||||
tools:ignore="ProtectedPermissions" />
|
||||
|
||||
<!-- 声明前台服务权限 -->
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
||||
|
||||
<application
|
||||
android:name="AppContext"
|
||||
android:allowBackup="true"
|
||||
@@ -122,7 +127,7 @@
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppthemeActivity"
|
||||
android:theme="@style/AppTheme"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:targetApi="tiramisu"
|
||||
@@ -175,6 +180,9 @@
|
||||
android:taskAffinity="com.qxcm.qxlive"
|
||||
android:launchMode="singleTask">
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".RealNameActivity"
|
||||
android:exported="false" />
|
||||
</application>
|
||||
<!-- <queries>-->
|
||||
<!-- <!– 支付宝 scheme –>-->
|
||||
|
||||
@@ -70,7 +70,7 @@ public class LaunchPageActivity extends BaseMvpActivity<LaunchPresenter, Activit
|
||||
// BaseApplication.getInstance().checkInEmulator();
|
||||
// BaseApplication.getInstance().initHeartBeat();
|
||||
// //延迟1.5秒执行
|
||||
handler.postDelayed(runnable, 100);
|
||||
handler.postDelayed(runnable, 2500);
|
||||
// initLogin();
|
||||
} else {
|
||||
PolicyDialog policyDialog = new PolicyDialog(this);
|
||||
|
||||
160
app/src/main/java/com/qxcm/qxlive/RealNameActivity.java
Normal file
160
app/src/main/java/com/qxcm/qxlive/RealNameActivity.java
Normal file
@@ -0,0 +1,160 @@
|
||||
package com.qxcm.qxlive;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.style.AbsoluteSizeSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.blankj.utilcode.util.RegexUtils;
|
||||
import com.example.modulevocal.conacts.RealNameConacts;
|
||||
import com.example.modulevocal.presenter.RealNamePresenter;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.bean.RealNameBean;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.qxcm.qxlive.databinding.ActivityRealNameBinding;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.api.WbCloudFaceContant;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.api.WbCloudFaceVerifySdk;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.api.listeners.WbCloudFaceVerifyLoginListener;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.api.listeners.WbCloudFaceVerifyResultListener;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.api.result.WbFaceError;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.api.result.WbFaceVerifyResult;
|
||||
import com.tencent.cloud.huiyansdkface.facelight.process.FaceVerifyStatus;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/7/15
|
||||
*@description: 实名认证
|
||||
*/
|
||||
@Route(path = ARouteConstants.REAL_NAME_ACTIVITY2)
|
||||
public class RealNameActivity extends BaseMvpActivity<RealNamePresenter, ActivityRealNameBinding> implements RealNameConacts.View{
|
||||
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.topBar.setTitle("实名认证");
|
||||
String fullText = "您知悉并同意应用提供者\n· 收集、使用您本人的身份信息和人脸图像\n· 向合法数据持有者核实您的身份信息\n· 本操作数据仅用于身份核实,安全可靠";
|
||||
SpannableString spannable = new SpannableString(fullText);
|
||||
|
||||
int firstLineEnd = fullText.indexOf('\n');
|
||||
if (firstLineEnd > 0) {
|
||||
// 设置第一行字体大小和颜色
|
||||
spannable.setSpan(
|
||||
new AbsoluteSizeSpan(16, true), // 18sp,基于 TextView 的 sp 值调整
|
||||
0,
|
||||
firstLineEnd,
|
||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
);
|
||||
|
||||
spannable.setSpan(
|
||||
new ForegroundColorSpan(Color.BLACK),
|
||||
0,
|
||||
firstLineEnd,
|
||||
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
);
|
||||
}
|
||||
|
||||
mBinding.tvAgreeTerms.setText(spannable);
|
||||
mBinding.btnSubmit.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_real_name;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RealNamePresenter bindPresenter() {
|
||||
return new RealNamePresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void realNameSuccess(RealNameBean msg) {
|
||||
Bundle data = new Bundle();
|
||||
WbCloudFaceVerifySdk.InputData inputData = new WbCloudFaceVerifySdk.InputData(
|
||||
msg.getFaceId(),
|
||||
msg.getOrderNo(),
|
||||
msg.getAppid(),
|
||||
msg.getApiVersion(),
|
||||
msg.getNonce(),
|
||||
msg.getUserid(),
|
||||
msg.getSign(),
|
||||
FaceVerifyStatus.Mode.GRADE,
|
||||
msg.getLicence());
|
||||
data.putSerializable(WbCloudFaceContant.INPUT_DATA, inputData);
|
||||
//设置是否打开语音提示,默认关闭,此处设置为关闭
|
||||
data.putBoolean(WbCloudFaceContant. PLAY_VOICE, true);
|
||||
|
||||
//避免用户快速点击导致二次登录,二次拉起刷脸等操作引起问题
|
||||
WbCloudFaceVerifySdk.getInstance().
|
||||
initAdvSdk(RealNameActivity.this, data, new WbCloudFaceVerifyLoginListener() {
|
||||
@Override
|
||||
public void onLoginSuccess () {
|
||||
//登录成功,拉起 sdk 页面,由 FaceVerifyResultListener 返回刷脸结果
|
||||
WbCloudFaceVerifySdk.getInstance().startWbFaceVerifySdk(RealNameActivity.this, new WbCloudFaceVerifyResultListener() {
|
||||
@Override
|
||||
public void onFinish(WbFaceVerifyResult result) {
|
||||
if (result != null) {
|
||||
if (result.isSuccess()) {
|
||||
Log.d("@@@", "刷脸成功!");
|
||||
SpUtil.setRealName(true);
|
||||
MvpPre.realNameResult(result.getOrderNo());
|
||||
|
||||
} else {
|
||||
Log.d("@@@", "刷脸失败!");
|
||||
}
|
||||
}
|
||||
//刷脸结束后,及时释放资源
|
||||
WbCloudFaceVerifySdk.getInstance().release();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void onLoginFailed (WbFaceError error){
|
||||
Log.d("@@@", "刷脸失败!");
|
||||
//刷脸结束后,及时释放资源
|
||||
WbCloudFaceVerifySdk.getInstance().release();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendCodeSuccess() {
|
||||
finish();
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
if (view.getId()== R.id.btnSubmit){
|
||||
if (mBinding.edName.getText().toString().isEmpty()){
|
||||
com.blankj.utilcode.util.ToastUtils.showShort("请输入姓名");
|
||||
return;
|
||||
}
|
||||
if (mBinding.edPassword.getText().toString().isEmpty()){
|
||||
com.blankj.utilcode.util.ToastUtils.showShort("请输入身份证号");
|
||||
return;
|
||||
}
|
||||
if (RegexUtils.isIDCard18Exact(mBinding.edPassword.getText().toString())) {
|
||||
if (mBinding.btnSubmit.getText().toString().equals("下一步")) {
|
||||
mBinding.stepNum1.setBackground(getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.num_11));
|
||||
mBinding.stepNum2.setBackground(getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.num_2));
|
||||
// mBinding.l1.setVisibility(View.GONE);
|
||||
// mBinding.l2.setVisibility(View.VISIBLE);
|
||||
// mBinding.btnSubmit.setText("立即认证");
|
||||
MvpPre.realName(mBinding.edName.getText().toString(),mBinding.edPassword.getText().toString());
|
||||
} else {
|
||||
SpUtil.setRealName(true);
|
||||
finish();
|
||||
}
|
||||
}else {
|
||||
com.blankj.utilcode.util.ToastUtils.showShort("请输入正确的身份证号");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
247
app/src/main/res/layout/activity_real_name.xml
Normal file
247
app/src/main/res/layout/activity_real_name.xml
Normal file
@@ -0,0 +1,247 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout 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"
|
||||
|
||||
tools:context=".activity.RealNameActivity">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.qxcm.moduleutil.widget.CustomTopBar
|
||||
android:id="@+id/top_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/steps"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_68"
|
||||
android:layout_margin="@dimen/dp_16"
|
||||
android:background="@drawable/bg_r9_fffff"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<!-- 第一步:验证手机号 -->
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!-- 步骤编号 -->
|
||||
<TextView
|
||||
android:id="@+id/step_num_1"
|
||||
android:layout_width="@dimen/dp_23"
|
||||
android:layout_height="@dimen/dp_23"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:background="@mipmap/num_1"
|
||||
android:gravity="center" />
|
||||
|
||||
<!-- 步骤描述 -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:text="@string/fill_identity_info"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 分割线 -->
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:layout_weight="1"
|
||||
android:background="@mipmap/line9" />
|
||||
|
||||
<!-- 第二步:设置新密码 -->
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!-- 步骤编号 -->
|
||||
<TextView
|
||||
android:id="@+id/step_num_2"
|
||||
android:layout_width="@dimen/dp_23"
|
||||
android:layout_height="@dimen/dp_23"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:background="@mipmap/num_22"
|
||||
android:gravity="center" />
|
||||
|
||||
<!-- 步骤描述 -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:text="@string/face_recognition"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/l_1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:text="@string/real_name_authentication_tips"
|
||||
android:textColor="@color/color_FF999999"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_44"
|
||||
android:layout_marginLeft="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginRight="@dimen/dp_16"
|
||||
android:background="@drawable/bg_r16_ffeff2f8"
|
||||
android:gravity="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_send_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="@dimen/dp_14"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/real_name"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_16"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ed_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_28"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginLeft="13dp"
|
||||
android:layout_marginRight="25dp"
|
||||
android:layout_toRightOf="@+id/tv_send_name"
|
||||
android:background="@android:color/transparent"
|
||||
android:hint="@string/please_enter_real_name"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/black"
|
||||
android:textColorHint="@color/color_FF9b9b9b"
|
||||
android:textSize="@dimen/sp_16" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl_code"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_44"
|
||||
android:layout_marginLeft="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginRight="@dimen/dp_16"
|
||||
android:background="@drawable/bg_r16_ffeff2f8"
|
||||
android:gravity="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_send_code"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="@dimen/dp_14"
|
||||
android:gravity="left|center"
|
||||
android:text="@string/id_number"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_16"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
||||
<EditText
|
||||
android:id="@+id/ed_password"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_28"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_marginLeft="13dp"
|
||||
android:layout_marginRight="25dp"
|
||||
android:layout_toRightOf="@+id/tv_send_code"
|
||||
android:background="@android:color/transparent"
|
||||
android:hint="@string/please_enter_id_number"
|
||||
android:singleLine="true"
|
||||
android:textColor="@color/black"
|
||||
android:textColorHint="@color/color_FF9b9b9b"
|
||||
android:textSize="@dimen/sp_16" />
|
||||
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/l_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:text="为了保证本人操作,请进行人脸验证"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@mipmap/real_img"
|
||||
android:layout_gravity="center"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_agree_terms"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_54"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_54"
|
||||
android:lineSpacingExtra="@dimen/dp_5"
|
||||
android:text="您知悉并同意应用提供者 \n· 收集、使用您本人的身份信息和人脸图像 \n· 向合法数据持有者核实您的身份信息 \n· 本操作数据仅用于身份核实,安全可靠"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
</LinearLayout>
|
||||
<!-- 提交按钮 -->
|
||||
<Button
|
||||
android:id="@+id/btnSubmit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_42"
|
||||
android:layout_marginStart="@dimen/dp_38"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:layout_marginEnd="@dimen/dp_38"
|
||||
android:background="@drawable/cs"
|
||||
android:gravity="center"
|
||||
android:text="下一步"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="16sp" />
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
@@ -5,6 +5,12 @@
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
<item name="android:colorBackground">@color/background</item>
|
||||
<item name="android:textColor">@color/color_1F1C1F</item>
|
||||
<item name="android:textColorHint">@color/color_FF999999</item>
|
||||
<item name="android:windowBackground">@color/color_F9FAFA</item>
|
||||
<item name="android:windowTranslucentStatus">false</item>
|
||||
<item name="android:windowLightStatusBar">true</item>
|
||||
|
||||
</style>
|
||||
|
||||
<style name="LauncherAppTheme" parent="AppTheme">
|
||||
@@ -18,6 +24,10 @@
|
||||
<item name="android:windowAllowReturnTransitionOverlap">false</item>
|
||||
<item name="android:windowEnterTransition">@null</item>
|
||||
<item name="android:windowExitTransition">@null</item>
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:windowTranslucentStatus">false</item>
|
||||
<item name="android:windowLightStatusBar">true</item>
|
||||
</style>
|
||||
|
||||
<style name="dialog" parent="AppTheme">
|
||||
|
||||
Reference in New Issue
Block a user