Browse Source

1.添加游戏退出确定取消弹窗

王鹏鹏 2 years ago
parent
commit
59c3ac2960

+ 1 - 0
.idea/misc.xml

@@ -495,6 +495,7 @@
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_game_loading.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_main.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/activity_play_game.xml" value="0.536" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_exit_game.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/layout/dialog_game_result.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pads/healthconsultation/src/main/res/layout/activity_consultation_request.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/healthconsultation/src/main/res/layout/activity_doctor_details.xml" value="0.23697916666666666" />

+ 76 - 0
game/src/main/java/com/yingyangfly/game/dialog/ExitGameDialog.kt

@@ -0,0 +1,76 @@
+package com.yingyangfly.game.dialog
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.widget.AppCompatButton
+import androidx.fragment.app.DialogFragment
+import com.gyf.immersionbar.BarHide
+import com.gyf.immersionbar.ktx.immersionBar
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.utils.ViewTool
+import com.yingyangfly.game.R
+
+/**
+ * 退出游戏确认弹框
+ */
+class ExitGameDialog : DialogFragment() {
+
+    private var btnHome: AppCompatButton? = null
+    private var btnContinueThisLevel: AppCompatButton? = null
+
+    var onDialogClickListener: ((bean: String) -> Unit)? = null
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        isCancelable = false
+        dialog?.setCanceledOnTouchOutside(true)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        dialog?.window?.setLayout(
+            ViewGroup.LayoutParams.MATCH_PARENT,
+            ViewGroup.LayoutParams.MATCH_PARENT
+        )
+        dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        immersionBar {
+            hideBar(BarHide.FLAG_HIDE_BAR)
+            navigationBarColor(R.color.transparent)
+        }
+        val rootView = ViewTool.inflateFragmentPixels(
+            activity, R.layout.dialog_exit_game, container, 1194, 834
+        )
+        findId(rootView)
+        initData()
+        initListener()
+        return rootView
+    }
+
+    private fun findId(rootView: View) {
+        btnHome = rootView.findViewById(R.id.btnHome)
+        btnContinueThisLevel = rootView.findViewById(R.id.btnContinueThisLevel)
+    }
+
+    private fun initData() {
+
+    }
+
+    private fun initListener() {
+        btnHome!!.setOnSingleClickListener {
+            onDialogClickListener?.invoke("")
+            dismiss()
+        }
+        btnContinueThisLevel!!.setOnSingleClickListener {
+            dismiss()
+        }
+    }
+}

+ 2 - 0
game/src/main/java/com/yingyangfly/game/dialog/GameResultDialog.kt

@@ -106,9 +106,11 @@ class GameResultDialog : DialogFragment() {
     private fun initListener() {
         btnHome!!.setOnSingleClickListener {
             onBackHomeDialogClickListener?.invoke("")
+            dismiss()
         }
         btnContinueThisLevel!!.setOnSingleClickListener {
             onGameDialogClickListener?.invoke(isPass)
+            dismiss()
         }
     }
 }

+ 15 - 6
game/src/main/java/com/yingyangfly/game/introduction/GameIntroductionActivity.kt

@@ -11,9 +11,9 @@ import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
-import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.game.R
 import com.yingyangfly.game.databinding.ActivityGameIntroductionBinding
+import com.yingyangfly.game.dialog.ExitGameDialog
 import com.yingyangfly.game.entity.GameBean
 
 /**
@@ -81,12 +81,21 @@ class GameIntroductionActivity :
             MotionEvent.ACTION_UP -> {
                 v.startAnimation(getEndAnimation())
                 if (v.id == R.id.homeImage) {
-                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                    runOnUiThread {
+                        val exitGameDialog = ExitGameDialog()
+                        exitGameDialog.onDialogClickListener = {
+                            finish()
+                        }
+                        exitGameDialog.show(supportFragmentManager, "exitGameDialog")
+                    }
+
                 } else if (v.id == R.id.btnStartGame) {
-                    ARouter.getInstance().build(RouterUrlCommon.playGame)
-                        .withSerializable("bean", gameBean)
-                        .withTransition(R.anim.leftin, R.anim.leftout)
-                        .navigation(mContext)
+                    runOnUiThread {
+                        ARouter.getInstance().build(RouterUrlCommon.playGame)
+                            .withSerializable("bean", gameBean)
+                            .withTransition(R.anim.leftin, R.anim.leftout)
+                            .navigation(mContext)
+                    }
                 }
             }
             MotionEvent.ACTION_CANCEL -> {

+ 16 - 0
game/src/main/res/layout/activity_play_game.xml

@@ -87,6 +87,7 @@
             app:layout_constraintTop_toTopOf="parent" />
 
         <LinearLayout
+            android:id="@+id/scoreLayout"
             android:layout_width="@dimen/divider_153px"
             android:layout_height="@dimen/divider_124px"
             android:layout_marginStart="@dimen/divider_18px"
@@ -114,5 +115,20 @@
                 android:textColor="@color/color_FFFFA413"
                 android:textSize="@dimen/divider_32px" />
         </LinearLayout>
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tvGameLevel"
+            android:layout_width="@dimen/divider_153px"
+            android:layout_height="@dimen/divider_124px"
+            android:layout_marginStart="@dimen/divider_18px"
+            android:layout_marginTop="@dimen/divider_154px"
+            android:layout_marginEnd="@dimen/divider_51px"
+            android:background="@drawable/bg_game_score"
+            android:gravity="center"
+            android:textColor="@color/color_FFFFA413"
+            android:textSize="@dimen/divider_48px"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/gameLayout"
+            app:layout_constraintTop_toBottomOf="@+id/scoreLayout" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

+ 66 - 0
game/src/main/res/layout/dialog_exit_game.xml

@@ -0,0 +1,66 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@mipmap/icon_exit_game"
+    tools:ignore="ResourceName">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="@dimen/divider_656px"
+        android:layout_height="@dimen/divider_379px"
+        android:background="@mipmap/icon_bg_exit_game"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tvTitle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/divider_97px"
+            android:gravity="center"
+            android:text="@string/are_you_sure_to_exit_the_training"
+            android:textColor="@color/color_FF5F3100"
+            android:textSize="@dimen/divider_48px"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.appcompat.widget.AppCompatButton
+            android:id="@+id/btnHome"
+            android:layout_width="@dimen/divider_274px"
+            android:layout_height="@dimen/divider_96px"
+            android:layout_marginStart="@dimen/divider_44px"
+            android:layout_marginTop="@dimen/divider_39px"
+            android:background="@mipmap/icon_back_home"
+            android:gravity="center"
+            android:text="@string/determine"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/divider_38px"
+            android:textStyle="bold"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+        <androidx.appcompat.widget.AppCompatButton
+            android:id="@+id/btnContinueThisLevel"
+            android:layout_width="@dimen/divider_274px"
+            android:layout_height="@dimen/divider_96px"
+            android:layout_marginStart="@dimen/divider_19px"
+            android:layout_marginTop="@dimen/divider_39px"
+            android:background="@mipmap/icon_continue_this_level"
+            android:gravity="center"
+            android:text="@string/cancellation"
+            android:textColor="@android:color/white"
+            android:textSize="@dimen/divider_38px"
+            android:textStyle="bold"
+            app:layout_constraintStart_toEndOf="@+id/btnHome"
+            app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>

BIN
game/src/main/res/mipmap-xxhdpi/icon_bg_exit_game.png


BIN
game/src/main/res/mipmap-xxhdpi/icon_exit_game.png


+ 2 - 0
game/src/main/res/values/dimens.xml

@@ -32,6 +32,7 @@
     <dimen name="divider_409px" tools:ignore="ResourceName">409px</dimen>
     <dimen name="divider_404px" tools:ignore="ResourceName">404px</dimen>
     <dimen name="divider_389px" tools:ignore="ResourceName">389px</dimen>
+    <dimen name="divider_379px" tools:ignore="ResourceName">379px</dimen>
     <dimen name="divider_377px" tools:ignore="ResourceName">377px</dimen>
     <dimen name="divider_371px" tools:ignore="ResourceName">371px</dimen>
     <dimen name="divider_363px" tools:ignore="ResourceName">363px</dimen>
@@ -136,6 +137,7 @@
     <dimen name="divider_102px" tools:ignore="ResourceName">102px</dimen>
     <dimen name="divider_101px" tools:ignore="ResourceName">101px</dimen>
     <dimen name="divider_100px" tools:ignore="ResourceName">100px</dimen>
+    <dimen name="divider_97px" tools:ignore="ResourceName">97px</dimen>
     <dimen name="divider_96px" tools:ignore="ResourceName">96px</dimen>
     <dimen name="divider_95px" tools:ignore="ResourceName">95px</dimen>
     <dimen name="divider_93px" tools:ignore="ResourceName">93px</dimen>

+ 3 - 0
game/src/main/res/values/strings.xml

@@ -3,4 +3,7 @@
     <string name="pause_help" tools:ignore="ResourceName">暂停/帮助</string>
     <string name="homepage" tools:ignore="ResourceName">返回首页</string>
     <string name="continue_this_level" tools:ignore="ResourceName">继续本关</string>
+    <string name="are_you_sure_to_exit_the_training" tools:ignore="ResourceName">确定退出训练吗?</string>
+    <string name="determine" tools:ignore="ResourceName">确定</string>
+    <string name="cancellation" tools:ignore="ResourceName">取消</string>
 </resources>