diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 98d8b11..2051a5d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,6 +25,9 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.DefenseApplication">
+
diff --git a/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt b/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt
index 2b78583..23a8440 100644
--- a/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/home/SetNameActivity.kt
@@ -1,8 +1,10 @@
package com.example.defenseapplication.home
+import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.defenseapplication.databinding.SetNameActivityBinding
+import com.example.defenseapplication.liveVideo.LiveVideoActivity
import com.gyf.immersionbar.ImmersionBar
//设置名字页面
class SetNameActivity : AppCompatActivity() {
@@ -20,10 +22,9 @@ class SetNameActivity : AppCompatActivity() {
binding.ivBack.setOnClickListener {
finish()
}
-
binding.btnConfirm.setOnClickListener {
val deviceName = binding.etName.text.toString().trim()
- finish()
+ startActivity(Intent(this, LiveVideoActivity::class.java).apply {})
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/StrikePositionActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/StrikePositionActivity.kt
new file mode 100644
index 0000000..ada3065
--- /dev/null
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/StrikePositionActivity.kt
@@ -0,0 +1,83 @@
+package com.example.defenseapplication.liveVideo
+
+import android.os.Bundle
+import android.widget.RelativeLayout
+import androidx.appcompat.app.AppCompatActivity
+import com.example.defenseapplication.R
+import com.example.defenseapplication.databinding.StrikePositionActivityBinding
+import com.example.defenseapplication.view.CustomDialogFragment
+import com.example.defenseapplication.view.showDefenseDialog
+import com.gyf.immersionbar.ImmersionBar
+
+class StrikePositionActivity : AppCompatActivity() {
+ private lateinit var binding: StrikePositionActivityBinding
+ private lateinit var markerLayoutParams: RelativeLayout.LayoutParams
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = StrikePositionActivityBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .titleBar(binding.topBar)
+ .init()
+
+ binding.ivBack.setOnClickListener {
+ finish()
+ }
+
+ binding.btnSubmit.setOnClickListener {
+ showConfirmDialog()
+ }
+ // 获取准星的 LayoutParams,并移除居中约束
+ markerLayoutParams = binding.ivStrikeMarker.layoutParams as RelativeLayout.LayoutParams
+ markerLayoutParams.removeRule(RelativeLayout.CENTER_HORIZONTAL)
+ markerLayoutParams.removeRule(RelativeLayout.CENTER_VERTICAL)
+ binding.ivStrikeMarker.layoutParams = markerLayoutParams
+
+ // 设置人体图片的点击监听
+ binding.ivHumanBody.setOnTouchListener { _, event ->
+ if (event.action == android.view.MotionEvent.ACTION_DOWN) {
+ moveMarkerTo(event.x, event.y)
+ }
+ true
+ }
+ // 初始化准星位置:人体头部(假设在图片宽度的1/2,高度的1/5处)
+ binding.ivHumanBody.post {
+ val humanWidth = binding.ivHumanBody.width
+ val humanHeight = binding.ivHumanBody.height
+ if (humanWidth > 0 && humanHeight > 0) {
+ val headX = humanWidth / 2f
+ val headY = humanHeight / 5f
+ moveMarkerTo(headX, headY)
+ }
+ }
+ }
+
+ private fun showConfirmDialog() {
+ val config = CustomDialogFragment.Config(
+ title = getString(R.string.tip),
+ message = getString(R.string.confirm_modify_strike_pos),
+ positiveText = getString(R.string.confirm),
+ negativeText = getString(R.string.cancel)
+ )
+ showDefenseDialog(config, onPositiveClick = {
+ finish()
+ // if(){
+// ToastUtils.showSuccess(this, getString(R.string.wifi_connection_success))
+// }else{
+// ToastUtils.showError(this, getString(R.string.wifi_connection_failed))
+// }
+ })
+ }
+ private fun moveMarkerTo(x: Float, y: Float) {
+ val marker = binding.ivStrikeMarker
+ // 让准星中心对准点击位置
+ val left = x - marker.width / 2f
+ val top = y - marker.height / 2f
+
+ markerLayoutParams.leftMargin = left.toInt()
+ markerLayoutParams.topMargin = top.toInt()
+ marker.layoutParams = markerLayoutParams
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/WaterGunSettingsActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/WaterGunSettingsActivity.kt
index 40c6a12..c38035c 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/WaterGunSettingsActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/WaterGunSettingsActivity.kt
@@ -1,5 +1,6 @@
package com.example.defenseapplication.liveVideo
+import android.content.Intent
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import com.example.defenseapplication.R
@@ -59,5 +60,8 @@ class WaterGunSettingsActivity : BaseActivity() {
}
dialog.show()
}
+ binding.itemPosition.setOnClickListener {
+ startActivity(Intent(this, StrikePositionActivity::class.java))
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/dajitubiao.png b/app/src/main/res/drawable/dajitubiao.png
new file mode 100644
index 0000000..f8f7491
Binary files /dev/null and b/app/src/main/res/drawable/dajitubiao.png differ
diff --git a/app/src/main/res/drawable/human_body.png b/app/src/main/res/drawable/human_body.png
new file mode 100644
index 0000000..a6d8fed
Binary files /dev/null and b/app/src/main/res/drawable/human_body.png differ
diff --git a/app/src/main/res/layout/strike_position_activity.xml b/app/src/main/res/layout/strike_position_activity.xml
new file mode 100644
index 0000000..554d5be
--- /dev/null
+++ b/app/src/main/res/layout/strike_position_activity.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index ce90154..d06a73f 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -191,6 +191,8 @@
打击间隔
切换容器
打击位置
+ 请点击下方人体模型,选择大致打击位置
+ 确定修改为该打击位置?
容器1
容器2
容器3
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 701ed3d..67c3766 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -363,6 +363,8 @@
Strike Interval
Switch Container
Strike Position
+ Please click the human model below to select the approximate strike position
+ Confirm to modify to this strike position?
Container 1
Container 2
Container 3