沉浸式
This commit is contained in:
@@ -36,7 +36,6 @@ android {
|
||||
buildFeatures {
|
||||
viewBinding=true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -83,4 +82,8 @@ dependencies {
|
||||
implementation("androidx.media3:media3-ui:1.9.0")
|
||||
// ExoPlayer 通用库
|
||||
implementation("androidx.media3:media3-common:1.9.0")
|
||||
// 基础依赖包,必须要依赖
|
||||
implementation("com.geyifeng.immersionbar:immersionbar:3.2.2")
|
||||
// kotlin扩展(可选)
|
||||
implementation("com.geyifeng.immersionbar:immersionbar-ktx:3.2.2")
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.example.defenseapplication.adapter.AddDeviceAdapter
|
||||
import com.example.defenseapplication.adapter.Device
|
||||
import com.example.defenseapplication.databinding.AddDeviceActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class AddDeviceActivity : AppCompatActivity() {
|
||||
|
||||
@@ -18,7 +19,10 @@ class AddDeviceActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = AddDeviceActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
binding.ivBack.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.WifiListAdapter
|
||||
import com.example.defenseapplication.databinding.AddFamilyActivityBinding
|
||||
import com.example.defenseapplication.databinding.DialogWifiListBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class AddFamilyActivity : AppCompatActivity() {
|
||||
|
||||
@@ -34,7 +35,10 @@ class AddFamilyActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = AddFamilyActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
binding.ivBack.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.example.defenseapplication.adapter.MessageListAdapter
|
||||
import com.example.defenseapplication.adapter.MessageListItem
|
||||
import com.example.defenseapplication.databinding.MessageActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class MessageActivity : AppCompatActivity() {
|
||||
private lateinit var binding: MessageActivityBinding
|
||||
@@ -19,7 +20,10 @@ class MessageActivity : AppCompatActivity() {
|
||||
enableEdgeToEdge()
|
||||
binding = MessageActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.main) { v, insets ->
|
||||
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.bumptech.glide.Glide
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.PersonalFragmentBinding
|
||||
import com.example.defenseapplication.personal.PersonalProfileActivity
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class PersonalFragment : Fragment() {
|
||||
// ViewBinding
|
||||
@@ -21,6 +22,12 @@ class PersonalFragment : Fragment() {
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.headerLayout)
|
||||
.init()
|
||||
|
||||
_binding = PersonalFragmentBinding.inflate(inflater, container, false)
|
||||
Glide.with(this)
|
||||
.load(R.drawable.img)
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ScanActivityBinding
|
||||
import com.google.zxing.*
|
||||
import com.google.zxing.common.HybridBinarizer
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import java.util.*
|
||||
|
||||
class ScanActivity : AppCompatActivity(), SurfaceHolder.Callback {
|
||||
@@ -42,7 +43,10 @@ class ScanActivity : AppCompatActivity(), SurfaceHolder.Callback {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ScanActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.btnBack)
|
||||
.init()
|
||||
initView()
|
||||
initListener()
|
||||
startScanLineAnimation()
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.example.defenseapplication.home
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.databinding.SetNameActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class SetNameActivity : AppCompatActivity() {
|
||||
|
||||
@@ -12,7 +13,10 @@ class SetNameActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = SetNameActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
binding.ivBack.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
|
||||
@@ -13,7 +13,10 @@ import android.widget.Toast
|
||||
import androidx.activity.OnBackPressedDispatcher
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.ui.test.isEnabled
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.LiveVideoActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.gyf.immersionbar.ktx.destroyImmersionBar
|
||||
import java.io.IOException
|
||||
|
||||
class LiveVideoActivity : AppCompatActivity(), SurfaceHolder.Callback {
|
||||
@@ -36,6 +39,11 @@ class LiveVideoActivity : AppCompatActivity(), SurfaceHolder.Callback {
|
||||
binding = LiveVideoActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
// ImmersionBar核心调用,沉浸式
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
|
||||
initSurfaceView()
|
||||
initListener()
|
||||
@@ -297,5 +305,7 @@ class LiveVideoActivity : AppCompatActivity(), SurfaceHolder.Callback {
|
||||
releaseMediaPlayer()
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.FaceLoginActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class FaceLoginActivity : AppCompatActivity() {
|
||||
|
||||
@@ -17,7 +18,10 @@ class FaceLoginActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = FaceLoginActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topContainer)
|
||||
.init()
|
||||
setupListeners()
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.example.defenseapplication.databinding.FaceVerificationActivityBindin
|
||||
import com.example.defenseapplication.view.FaceAnalyzer
|
||||
import com.google.mlkit.vision.face.FaceDetection
|
||||
import com.google.mlkit.vision.face.FaceDetectorOptions
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import java.util.concurrent.ExecutorService
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
@@ -33,7 +34,10 @@ class FaceVerificationActivity : AppCompatActivity() {
|
||||
// 使用标准 ViewBinding
|
||||
binding = FaceVerificationActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topContainer)
|
||||
.init()
|
||||
// 初始化人脸检测器(选项可自行调整)
|
||||
val options = FaceDetectorOptions.Builder()
|
||||
.setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_FAST)
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ForgetPasswordActivityBinding
|
||||
import com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.util.TextUtils
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import java.util.regex.Pattern
|
||||
import kotlin.random.Random
|
||||
|
||||
@@ -34,6 +35,10 @@ class ForgetPasswordActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ForgetPasswordActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topContainer)
|
||||
.init()
|
||||
// 设置渐变背景
|
||||
val startColor = Color.parseColor("#CBEBFA")
|
||||
val endColor = Color.parseColor("#FFF2EF")
|
||||
|
||||
@@ -11,6 +11,7 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import com.example.defenseapplication.databinding.ActivityLoginBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class LoginActivity : AppCompatActivity() {
|
||||
|
||||
@@ -29,6 +30,11 @@ class LoginActivity : AppCompatActivity() {
|
||||
val endColor = Color.parseColor("#FFF2EF")
|
||||
setGradientBackground(binding.main, startColor, endColor)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.logoFrame)
|
||||
.init()
|
||||
|
||||
setupTabListeners()
|
||||
setupClickListeners()
|
||||
switchToSmsMode()
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.databinding.RegisterActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
/**
|
||||
* 注册页面
|
||||
@@ -25,6 +26,12 @@ class RegisterActivity : AppCompatActivity() {
|
||||
val startColor = Color.parseColor("#CBEBFA")
|
||||
val endColor = Color.parseColor("#FFF2EF")
|
||||
setGradientBackground(binding.main, startColor, endColor)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topContainer)
|
||||
.init()
|
||||
|
||||
setupListeners()
|
||||
//setupTextWatchers()
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.RegisterSuccessActivityBinding
|
||||
import com.example.defenseapplication.home.HomeActivity
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class RegisterSuccessActivity : AppCompatActivity() {
|
||||
|
||||
@@ -19,6 +20,10 @@ class RegisterSuccessActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = RegisterSuccessActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topContainer)
|
||||
.init()
|
||||
// 返回按钮
|
||||
binding.backIcon.setOnClickListener {
|
||||
finish()
|
||||
|
||||
@@ -8,6 +8,7 @@ import androidx.core.view.WindowInsetsCompat
|
||||
import com.bumptech.glide.Glide
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.PersonalProfileActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class PersonalProfileActivity : AppCompatActivity() {
|
||||
private lateinit var binding: PersonalProfileActivityBinding
|
||||
@@ -17,7 +18,10 @@ class PersonalProfileActivity : AppCompatActivity() {
|
||||
enableEdgeToEdge()
|
||||
binding = PersonalProfileActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(binding.topBar)
|
||||
.init()
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.main) { v, insets ->
|
||||
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
android:paddingBottom="12dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="智能防御机A1"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
||||
@@ -1,50 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<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:id="@+id/main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/message_bg"
|
||||
android:orientation="vertical"
|
||||
tools:context=".home.MessageActivity">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/topBar"
|
||||
android:gravity="center"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<ImageView
|
||||
android:id="@+id/ivBack"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:contentDescription="@null"
|
||||
android:src="@mipmap/back"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
android:src="@mipmap/back"/>
|
||||
|
||||
<TextView
|
||||
android:gravity="center"
|
||||
android:id="@+id/tvTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_weight="1"
|
||||
android:text="消息列表"
|
||||
android:textColor="#333333"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16dp"
|
||||
android:textStyle="bold"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvMessageList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvTitle"
|
||||
tools:listitem="@layout/item_message_notice" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
Reference in New Issue
Block a user