Bladeren bron

1.添加游戏结算页面

王鹏鹏 2 jaren geleden
bovenliggende
commit
ae24e68c17

+ 5 - 0
.idea/misc.xml

@@ -485,6 +485,11 @@
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/rv_empty.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_back.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_introduction.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_level_five.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_level_four.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_level_one.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_level_three.xml" value="0.151" />
+        <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_level_two.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_loading.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_pause.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_progressbar_selector.xml" value="0.151" />

+ 34 - 1
game/src/main/java/com/yingyangfly/game/adapter/GameResultAdapter.kt

@@ -1,4 +1,37 @@
 package com.yingyangfly.game.adapter
 
-class GameResultAdapter {
+import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+import com.yingyangfly.game.R
+import com.yingyangfly.game.databinding.ItemGameResultBinding
+import com.yingyangfly.game.entity.Detail
+
+/**
+ * 游戏结算adapter
+ */
+class GameResultAdapter(override val layoutId: Int = R.layout.item_game_result) :
+    BaseDataBindingAdapter<Detail, ItemGameResultBinding>() {
+
+    override fun onBindViewHolder(binding: ItemGameResultBinding, item: Detail, position: Int) {
+        binding.data = item
+        when (item.gameLevel) {
+            "1" -> {
+                binding.levelImage.setBackgroundResource(R.drawable.bg_game_level_one)
+            }
+            "2" -> {
+                binding.levelImage.setBackgroundResource(R.drawable.bg_game_level_two)
+            }
+            "3" -> {
+                binding.levelImage.setBackgroundResource(R.drawable.bg_game_level_three)
+            }
+            "4" -> {
+                binding.levelImage.setBackgroundResource(R.drawable.bg_game_level_four)
+            }
+            "5" -> {
+                binding.levelImage.setBackgroundResource(R.drawable.bg_game_level_five)
+            }
+            else -> {
+                binding.levelImage.setBackgroundResource(R.drawable.bg_game_level_one)
+            }
+        }
+    }
 }

+ 2 - 0
game/src/main/java/com/yingyangfly/game/entity/GameBean.java

@@ -1,5 +1,7 @@
 package com.yingyangfly.game.entity;
 
+import android.text.TextUtils;
+
 import java.io.Serializable;
 
 /**

+ 17 - 2
game/src/main/java/com/yingyangfly/game/settlement/GameSettlementActivity.kt

@@ -11,7 +11,9 @@ import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.game.R
+import com.yingyangfly.game.adapter.GameResultAdapter
 import com.yingyangfly.game.databinding.ActivityGameSettlementBinding
+import com.yingyangfly.game.entity.Detail
 
 /**
  * 游戏结算
@@ -23,6 +25,8 @@ class GameSettlementActivity :
 
     private var gameCode = ""
     private var playClass = ""
+    private var gameDetail = mutableListOf<Detail>()
+    private val adapter by lazy { GameResultAdapter() }
 
     override fun onCreate(savedInstanceState: Bundle?) {
         gameCode = intent.getStringExtra("gameCode") ?: ""
@@ -31,7 +35,10 @@ class GameSettlementActivity :
     }
 
     override fun initViews() {
-
+        binding {
+            rvGameLevel.adapter = adapter
+            adapter.setData(gameDetail)
+        }
     }
 
     @SuppressLint("ClickableViewAccessibility")
@@ -75,13 +82,21 @@ class GameSettlementActivity :
         loadData()
     }
 
+    /**
+     * 加载数据
+     */
     private fun loadData() {
         viewModel.getGameDetailByCode(gameCode, playClass, fail = {
             it.toast()
         }, success = {
+            gameDetail.clear()
             if (it != null) {
-
+                binding.data = it
+                if (it.details.isNullOrEmpty().not()) {
+                    gameDetail.addAll(it.details)
+                }
             }
+            adapter.setData(gameDetail)
         })
     }
 }

+ 7 - 0
game/src/main/res/drawable/bg_game_level_five.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <solid android:color="@color/color_FF8756FF" />
+</shape>

+ 7 - 0
game/src/main/res/drawable/bg_game_level_four.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <solid android:color="@color/color_FF7988FA" />
+</shape>

+ 7 - 0
game/src/main/res/drawable/bg_game_level_one.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <solid android:color="@color/color_FFFAD079" />
+</shape>

+ 7 - 0
game/src/main/res/drawable/bg_game_level_three.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <solid android:color="@color/color_FFFA9579" />
+</shape>

+ 7 - 0
game/src/main/res/drawable/bg_game_level_two.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <solid android:color="@color/color_94DE442A" />
+</shape>

+ 32 - 4
game/src/main/res/layout/activity_game_settlement.xml

@@ -57,7 +57,7 @@
                     app:layout_constraintTop_toTopOf="parent"
                     app:loadHeadImg="@{data.gameCoverImage}" />
 
-                <TextView
+                <androidx.appcompat.widget.AppCompatTextView
                     android:id="@+id/tvGameName"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -72,7 +72,7 @@
                     tools:text="抓小羊" />
 
                 <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/tvGameLevel"
+                    android:id="@+id/rvGameLevel"
                     android:layout_width="match_parent"
                     android:layout_height="0dp"
                     android:layout_marginStart="@dimen/divider_26px"
@@ -99,11 +99,39 @@
             app:layout_constraintStart_toEndOf="@+id/gamelayout"
             app:layout_constraintTop_toBottomOf="@+id/backLayout">
 
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
 
+                <androidx.appcompat.widget.AppCompatTextView
+                    android:id="@+id/tvGameStatus"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/divider_26px"
+                    android:layout_marginTop="@dimen/divider_26px"
+                    android:text='@{"总时长"+data.gameTotalTime}'
+                    android:textColor="@color/color_FFFF6F6F"
+                    android:textSize="@dimen/divider_32px"
+                    android:textStyle="bold"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
 
+                <androidx.appcompat.widget.AppCompatTextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/divider_26px"
+                    android:layout_marginTop="@dimen/divider_45px"
+                    android:text='@{"游戏得分"+data.totalGameScore}'
+                    android:textColor="@color/color_FFFF6F6F"
+                    android:textSize="@dimen/divider_32px"
+                    android:textStyle="bold"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/tvGameStatus"
+                    app:layout_constraintTop_toTopOf="parent" />
 
+            </androidx.constraintlayout.widget.ConstraintLayout>
         </com.google.android.material.card.MaterialCardView>
-
-
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

+ 37 - 3
game/src/main/res/layout/item_game_result.xml

@@ -3,11 +3,45 @@
     xmlns:tools="http://schemas.android.com/tools"
     tools:ignore="ResourceName">
 
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <data>
+
+        <variable
+            name="data"
+            type="com.yingyangfly.game.entity.Detail" />
+    </data>
+
+    <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="@dimen/divider_40px"
+        android:gravity="bottom"
+        android:orientation="horizontal">
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/divider_4px"
+            android:text='@{"第"+data.gameLevel+"关"}'
+            android:textColor="@color/color_FF5A5A5A"
+            android:textSize="@dimen/divider_20px"
+            android:textStyle="bold" />
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/levelImage"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/divider_32px"
+            android:layout_weight="1" />
 
+        <androidx.appcompat.widget.AppCompatTextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/divider_24px"
+            android:layout_marginEnd="@dimen/divider_36px"
+            android:layout_marginBottom="@dimen/divider_4px"
+            android:text='@{data.gameScore}'
+            android:textColor="@color/color_FFFFBA53"
+            android:textSize="@dimen/divider_28px"
+            android:textStyle="bold" />
 
-    </androidx.constraintlayout.widget.ConstraintLayout>
+    </LinearLayout>
 
 </layout>

+ 5 - 0
game/src/main/res/values/colors.xml

@@ -18,4 +18,9 @@
     <color name="color_FF4A75FF" tools:ignore="ResourceName">#FF4A75FF</color>
     <color name="color_FFFF6F6F" tools:ignore="ResourceName">#FFFF6F6F</color>
     <color name="color_FF5A5A5A" tools:ignore="ResourceName">#FF5A5A5A</color>
+    <color name="color_FFFFBA53" tools:ignore="ResourceName">#FFFFBA53</color>
+    <color name="color_FFFAD079" tools:ignore="ResourceName">#FFFAD079</color>
+    <color name="color_94DE442A" tools:ignore="ResourceName">#94DE442A</color>
+    <color name="color_FFFA9579" tools:ignore="ResourceName">#FFFA9579</color>
+    <color name="color_FF7988FA" tools:ignore="ResourceName">#FF7988FA</color>
 </resources>