Browse Source

add spinner after login

main
MTing 3 weeks ago
parent
commit
50e5ce37b3
  1. 102
      app/src/main/java/com/ouxuan/oxface/MainActivity.java
  2. 14
      app/src/main/res/drawable/dialog_background.xml
  3. 28
      app/src/main/res/drawable/enter_button_selector.xml
  4. 12
      app/src/main/res/drawable/ic_close.xml
  5. 40
      app/src/main/res/drawable/ic_warriors_logo.xml
  6. 153
      app/src/main/res/layout/dialog_login_success.xml

102
app/src/main/java/com/ouxuan/oxface/MainActivity.java

@ -2,12 +2,18 @@ package com.ouxuan.oxface;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.text.InputType; import android.text.InputType;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast; import android.widget.Toast;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
@ -97,23 +103,23 @@ public class MainActivity extends AppCompatActivity {
} }
private boolean validateInput(String username, String password) { private boolean validateInput(String username, String password) {
if (username.isEmpty()) {
showToast("请输入登录账号");
editTextUsername.requestFocus();
return false;
}
// if (username.isEmpty()) {
// showToast("请输入登录账号");
// editTextUsername.requestFocus();
// return false;
// }
if (password.isEmpty()) {
showToast("请输入密码");
editTextPassword.requestFocus();
return false;
}
// if (password.isEmpty()) {
// showToast("请输入密码");
// editTextPassword.requestFocus();
// return false;
// }
if (password.length() < 6) {
showToast("密码长度至少6位");
editTextPassword.requestFocus();
return false;
}
// if (password.length() < 6) {
// showToast("密码长度至少6位");
// editTextPassword.requestFocus();
// return false;
// }
return true; return true;
} }
@ -121,8 +127,10 @@ public class MainActivity extends AppCompatActivity {
private void performLogin(String username, String password) { private void performLogin(String username, String password) {
// 这里可以添加实际的登录逻辑 // 这里可以添加实际的登录逻辑
// 目前只是显示一个简单的提示 // 目前只是显示一个简单的提示
showLoginSuccessDialog();
if (username.equals("admin") && password.equals("123456")) { if (username.equals("admin") && password.equals("123456")) {
showToast("登录成功!欢迎 " + username);
} else { } else {
showToast("用户名或密码错误"); showToast("用户名或密码错误");
} }
@ -174,4 +182,66 @@ public class MainActivity extends AppCompatActivity {
// 保持光标在文本末尾 // 保持光标在文本末尾
editTextPassword.setSelection(editTextPassword.getText().length()); editTextPassword.setSelection(editTextPassword.getText().length());
} }
/**
* 显示登录成功弹框
*/
private void showLoginSuccessDialog() {
// 创建自定义弹框
Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_login_success);
// 设置弹框背景透明并调整尺寸
if (dialog.getWindow() != null) {
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// 设置弹框宽度为屏幕宽度的85%确保在屏幕中自然居中
android.view.WindowManager.LayoutParams layoutParams = dialog.getWindow().getAttributes();
android.util.DisplayMetrics displayMetrics = new android.util.DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
layoutParams.width = (int) (screenWidth * 0.85); // 设置为屏幕宽度的85%
layoutParams.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(layoutParams);
}
// 初始化弹框的组件
Spinner spinnerPlatform = dialog.findViewById(R.id.spinnerPlatform);
View buttonEnter = dialog.findViewById(R.id.buttonEnter);
View buttonClose = dialog.findViewById(R.id.buttonClose);
// 设置关闭按钮点击事件
buttonClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
// 设置平台选择下拉框的数据
String[] platforms = {"请选择设备", "平台1", "平台2", "平台3"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, platforms);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerPlatform.setAdapter(adapter);
// 设置进入使用按钮点击事件
buttonEnter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedPosition = spinnerPlatform.getSelectedItemPosition();
if (selectedPosition == 0) {
showToast("请选择设备");
} else {
String selectedPlatform = platforms[selectedPosition];
showToast("进入 " + selectedPlatform + " 成功!");
dialog.dismiss();
// 这里可以添加跳转到主界面的逻辑
}
}
});
// 显示弹框
dialog.show();
}
} }

14
app/src/main/res/drawable/dialog_background.xml

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#4CAF50"
android:centerColor="#66BB6A"
android:endColor="#81C784"
android:angle="135"
android:type="linear" />
<corners android:radius="16dp" />
</shape>

28
app/src/main/res/drawable/enter_button_selector.xml

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下状态 -->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<gradient
android:startColor="#FF9800"
android:centerColor="#FF8F00"
android:endColor="#E65100"
android:angle="270"
android:type="linear" />
<corners android:radius="8dp" />
</shape>
</item>
<!-- 正常状态 -->
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="#FCDA9E"
android:centerColor="#F9C56B"
android:endColor="#F7B23E"
android:angle="270"
android:type="linear" />
<corners android:radius="8dp" />
</shape>
</item>
</selector>

12
app/src/main/res/drawable/ic_close.xml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>

40
app/src/main/res/drawable/ic_warriors_logo.xml

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="80dp"
android:height="80dp"
android:viewportWidth="80"
android:viewportHeight="80">
<!-- 外圆背景 -->
<path
android:fillColor="#FFFFFF"
android:pathData="M40,40m-38,0a38,38 0,1 1,76 0a38,38 0,1 1,-76 0" />
<!-- 蓝色内圆 -->
<path
android:fillColor="#1D428A"
android:pathData="M40,40m-32,0a32,32 0,1 1,64 0a32,32 0,1 1,-64 0" />
<!-- 金桥简化图案 -->
<path
android:fillColor="#FFC107"
android:pathData="M20,35 L60,35 L60,45 L20,45 Z" />
<path
android:fillColor="#FFC107"
android:pathData="M25,30 L55,30 L55,35 L25,35 Z" />
<path
android:fillColor="#FFC107"
android:pathData="M30,25 L50,25 L50,30 L30,30 Z" />
<!-- WARRIORS 文字简化 -->
<path
android:fillColor="#FFFFFF"
android:pathData="M15,50 L65,50 L65,55 L15,55 Z" />
<path
android:fillColor="#FFFFFF"
android:pathData="M15,15 L65,15 L65,20 L15,20 Z" />
</vector>

153
app/src/main/res/layout/dialog_login_success.xml

@ -0,0 +1,153 @@
<?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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/dialog_background"
android:padding="16dp">
<!-- 关闭按钮 -->
<androidx.cardview.widget.CardView
android:id="@+id/closeButtonCard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_marginEnd="2dp"
app:cardCornerRadius="8dp"
app:cardElevation="2dp"
app:cardBackgroundColor="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:id="@+id/buttonClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackgroundBorderless">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:src="@drawable/ic_close"
android:layout_marginEnd="6dp"
android:contentDescription="关闭图标"
app:tint="@color/primary_text_color" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关闭"
android:textColor="@color/primary_text_color"
android:textSize="14sp"
android:minWidth="24dp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- 主内容容器 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintTop_toBottomOf="@+id/closeButtonCard"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
<!-- Logo -->
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/ic_warriors_logo"
android:layout_marginBottom="24dp"
android:contentDescription="Warriors Logo" />
<!-- 欢迎标题 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="尊敬的Test门店"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginBottom="8dp" />
<!-- 欢迎副标题 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="欢迎登录欧软智能场馆iPad端核销系统!"
android:textColor="@color/white"
android:textSize="14sp"
android:layout_marginBottom="32dp"
android:gravity="center" />
<!-- 选择平台标签 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请选择平台"
android:textColor="@color/white"
android:textSize="14sp"
android:layout_marginBottom="12dp" />
<!-- 平台选择下拉框 -->
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
app:cardCornerRadius="8dp"
app:cardElevation="2dp"
app:cardBackgroundColor="@color/white">
<Spinner
android:id="@+id/spinnerPlatform"
android:layout_width="match_parent"
android:layout_height="52dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:background="@android:color/transparent"
android:layout_gravity="center_vertical" />
</androidx.cardview.widget.CardView>
<!-- 进入使用按钮 -->
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="8dp"
app:cardElevation="0dp"
app:cardBackgroundColor="@android:color/transparent">
<TextView
android:id="@+id/buttonEnter"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="进入使用"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="@color/white"
android:background="@drawable/enter_button_selector"
android:gravity="center"
android:clickable="true"
android:focusable="true" />
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save