Ver Fonte

1.添加直播统计是和否接口

王鹏鹏 há 2 anos atrás
pai
commit
ca12eb41f6

+ 16 - 2
home/src/main/java/com/yingyangfly/home/activity/HomeActivity.kt

@@ -30,6 +30,7 @@ import com.yingyangfly.home.component.ShowPlayPorpoiseViewComponent
 import com.yingyangfly.home.component.ShowProfessionalEvaluationViewComponent
 import com.yingyangfly.home.dialog.DownLoadAppFragment
 import com.yingyangfly.home.entity.Record
+import com.yingyangfly.home.utils.AnimUtil
 
 /**
  * 新版首页
@@ -132,6 +133,11 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(),
         getCountTrain()
         //获取未读消息数量
         getCountMyMsg()
+        binding {
+            gameLayout.show(false)
+            interstellarLayout.show(false)
+            effectLayout.show(true)
+        }
     }
 
     /**
@@ -412,7 +418,7 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(),
      */
     private fun showLayout(isShow: Boolean) {
         binding {
-            effectLayout.show(isShow)
+            allLeftLayout.show(isShow)
             taskLayout.show(isShow.not())
         }
     }
@@ -612,8 +618,16 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(),
                     //开始训练蒙版
                     R.id.opneBtn -> {
                         binding {
-                            gameLayout.show(true)
                             effectLayout.show(false)
+                            interstellarLayout.show(true)
+                            opneBtn.post {
+                                AnimUtil.setTranslateAnimationLeft(
+                                    binding.leftDoorImage,
+                                    binding.gameLayout,
+                                    2500
+                                )
+                                AnimUtil.setTranslateAnimationRight(binding.rightDoorImage, 2500)
+                            }
                         }
                     }
                 }

+ 139 - 0
home/src/main/java/com/yingyangfly/home/utils/AnimUtil.java

@@ -0,0 +1,139 @@
+package com.yingyangfly.home.utils;
+
+import android.graphics.Bitmap;
+import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.DecelerateInterpolator;
+import android.view.animation.ScaleAnimation;
+import android.view.animation.TranslateAnimation;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+/**
+ * 创建人: WangYeYun
+ * 创建日期: 2021/4/13 14:15
+ * 描述: 开门动画工具类
+ */
+public class AnimUtil {
+
+    private static ScaleAnimation scaleAnim;
+    private static TranslateAnimation translateAnimationLeft, translateAnimationRight;
+
+    /**
+     * View放缩动画效果
+     */
+    private static void setScaleAnimation(final View view, int duration) {
+        if (null == view || duration < 0) {
+            return;
+        }
+        view.setPivotX(0.5f);
+        view.setPivotY(0.5f);
+        scaleAnim = new ScaleAnimation(0.9f, 1.0f, 0.9f, 1.0f, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);
+        scaleAnim.setInterpolator(new DecelerateInterpolator(3f));//插值器 动画越来越慢
+        scaleAnim.setDuration(duration);
+        scaleAnim.setFillAfter(true);//动画结束是画面停留在此动画的最后一帧
+        scaleAnim.setAnimationListener(new Animation.AnimationListener() {
+
+            @Override
+            public void onAnimationStart(Animation arg0) {
+                view.setVisibility(View.VISIBLE);
+            }
+
+            @Override
+            public void onAnimationRepeat(Animation arg0) {
+
+            }
+
+            @Override
+            public void onAnimationEnd(Animation arg0) {
+                scaleAnim = null;
+                view.clearAnimation();
+                view.setVisibility(View.VISIBLE);
+
+            }
+        });
+        view.startAnimation(scaleAnim);
+    }
+
+    /**
+     * View左移动画效果
+     */
+    public static void setTranslateAnimationLeft(final View ivLeft, final View view, int duration) {
+        translateAnimationLeft = new TranslateAnimation(0, -ivLeft.getWidth(), 0, 0);
+        translateAnimationLeft.setInterpolator(new DecelerateInterpolator(1f));//插值器 动画越来越慢
+        translateAnimationLeft.setDuration(duration);
+        translateAnimationLeft.setAnimationListener(new Animation.AnimationListener() {
+
+            @Override
+            public void onAnimationStart(Animation arg0) {
+                view.setVisibility(View.VISIBLE);
+            }
+
+            @Override
+            public void onAnimationRepeat(Animation arg0) {
+
+            }
+
+            @Override
+            public void onAnimationEnd(Animation arg0) {
+                translateAnimationLeft = null;
+                ivLeft.clearAnimation();
+                ivLeft.setVisibility(View.GONE);
+
+            }
+        });
+        ivLeft.startAnimation(translateAnimationLeft);
+    }
+
+    /**
+     * View右移动画效果
+     */
+    public static void setTranslateAnimationRight(final View ivRight, int duration) {
+        translateAnimationRight = new TranslateAnimation(0, ivRight.getWidth(), 0, 0);
+        translateAnimationRight.setInterpolator(new DecelerateInterpolator(1f));//插值器 动画越来越慢
+        translateAnimationRight.setDuration(duration);
+        translateAnimationRight.setAnimationListener(new Animation.AnimationListener() {
+
+            @Override
+            public void onAnimationStart(Animation arg0) {
+            }
+
+            @Override
+            public void onAnimationRepeat(Animation arg0) {
+
+            }
+
+            @Override
+            public void onAnimationEnd(Animation arg0) {
+                translateAnimationLeft = null;
+                ivRight.clearAnimation();
+                ivRight.setVisibility(View.GONE);
+
+            }
+        });
+        ivRight.startAnimation(translateAnimationRight);
+    }
+
+    /**
+     * 开门动画
+     *
+     * @param ivLeft
+     * @param ivRight
+     * @param tvContent
+     */
+    public static void setOpenDoorAnimation(ImageView ivLeft, ImageView ivRight, TextView tvContent) {
+        Bitmap[] bitmapArray = BitmapUtil.getBitmaps();
+        ivLeft.setImageBitmap(bitmapArray[0]);
+        ivRight.setImageBitmap(bitmapArray[1]);
+        int animTime = 1500;//开门动画时间
+        int animDelayTime = 500;//动画延迟500毫秒,保证数据先加载完成
+        tvContent.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                setScaleAnimation(tvContent, animTime);
+//                setTranslateAnimationLeft(ivLeft, animTime);
+                setTranslateAnimationRight(ivRight, animTime);
+            }
+        }, animDelayTime);
+    }
+}

+ 46 - 0
home/src/main/java/com/yingyangfly/home/utils/BitmapUtil.java

@@ -0,0 +1,46 @@
+package com.yingyangfly.home.utils;
+
+import android.app.Activity;
+import android.graphics.Bitmap;
+
+import com.gyf.immersionbar.ImmersionBar;
+
+/**
+ * 创建人: WangYeYun
+ * 创建日期: 2021/4/13 14:15
+ * 描述: Bitmap工具类
+ */
+public class BitmapUtil {
+    private static Bitmap[] bitmaps;
+
+    /**
+     * 截屏并裁剪
+     *
+     * @param activity
+     * @return
+     */
+    public static void cutBitmapArray(Activity activity) {
+        //截屏(有导航栏会截到导航栏)
+        activity.getWindow().getDecorView().setDrawingCacheEnabled(true);
+        Bitmap bitmap = activity.getWindow().getDecorView().getDrawingCache();
+
+        //裁剪成左右两张
+        Bitmap[] bitmapArray = new Bitmap[2];
+        int bitmapWith = bitmap.getWidth();
+        int bitmapHeight = bitmap.getHeight() - ImmersionBar.getNavigationBarHeight(activity); //减去导航栏高度
+        bitmapArray[0] = Bitmap.createBitmap(bitmap, 0, 0, bitmapWith / 2, bitmapHeight, null,
+                false);
+        bitmapArray[1] = Bitmap.createBitmap(bitmap, bitmapWith / 2, 0, bitmapWith / 2, bitmapHeight, null,
+                false);
+        bitmaps = bitmapArray;//缓存
+    }
+
+    /**
+     * 获取缓存的bitmap
+     *
+     * @return
+     */
+    public static Bitmap[] getBitmaps() {
+        return bitmaps;
+    }
+}

+ 91 - 58
home/src/main/res/layout/activity_home.xml

@@ -192,84 +192,117 @@
 
         <androidx.cardview.widget.CardView
             android:id="@+id/leftLayout"
-            android:layout_width="0dp"
-            android:layout_height="@dimen/divider_616px"
+            android:layout_width="@dimen/divider_516px"
+            android:layout_height="@dimen/divider_606px"
             android:layout_marginStart="@dimen/divider_40px"
             android:layout_marginTop="@dimen/divider_55px"
             android:layout_marginBottom="@dimen/divider_48px"
-            app:cardCornerRadius="@dimen/divider_28px"
+            app:cardCornerRadius="@dimen/divider_58px"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@id/rightLayout"
             app:layout_constraintHorizontal_weight="1"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/titleLayout">
 
-            <LinearLayout
-                android:id="@+id/gameLayout"
+            <FrameLayout
+                android:id="@+id/allLeftLayout"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_gravity="center_horizontal"
-                android:background="@mipmap/icon_occupy_bitmap"
-                android:gravity="center_horizontal"
-                android:visibility="gone"
-                android:orientation="vertical">
+                android:layout_height="match_parent">
 
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/rvGame"
+                <LinearLayout
+                    android:id="@+id/gameLayout"
                     android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="@dimen/divider_20px"
-                    android:layout_marginTop="@dimen/divider_10px"
-                    android:layout_marginEnd="@dimen/divider_17px"
-                    android:layout_weight="1" />
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center_horizontal"
+                    android:background="@mipmap/icon_interstellar"
+                    android:gravity="center_horizontal"
+                    android:orientation="vertical"
+                    android:visibility="gone">
 
-                <Button
-                    android:id="@+id/btnNextPage"
-                    android:layout_width="@dimen/divider_307px"
-                    android:layout_height="@dimen/divider_56px"
-                    android:layout_marginTop="@dimen/divider_18px"
-                    android:layout_marginBottom="@dimen/divider_18px"
-                    android:background="@drawable/bg_home_game_btn"
-                    android:text="@string/next_page"
-                    android:textColor="@android:color/white"
-                    android:textSize="@dimen/divider_28px" />
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rvGame"
+                        android:layout_width="match_parent"
+                        android:layout_height="0dp"
+                        android:layout_marginStart="@dimen/divider_20px"
+                        android:layout_marginTop="@dimen/divider_10px"
+                        android:layout_marginEnd="@dimen/divider_17px"
+                        android:layout_weight="1" />
 
-            </LinearLayout>
+                    <Button
+                        android:id="@+id/btnNextPage"
+                        android:layout_width="@dimen/divider_307px"
+                        android:layout_height="@dimen/divider_56px"
+                        android:background="@drawable/bg_home_game_btn"
+                        android:text="@string/next_page"
+                        android:textColor="@android:color/white"
+                        android:textSize="@dimen/divider_28px" />
 
-            <LinearLayout
-                android:id="@+id/effectLayout"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_gravity="center_horizontal"
-                android:background="@mipmap/icon_effect"
-                android:orientation="vertical">
+                </LinearLayout>
 
-                <androidx.appcompat.widget.AppCompatTextView
+                <FrameLayout
+                    android:id="@+id/interstellarLayout"
                     android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="@dimen/divider_43px"
-                    android:layout_marginTop="@dimen/divider_316px"
-                    android:layout_marginEnd="@dimen/divider_49px"
-                    android:layout_weight="1"
-                    android:gravity="center"
-                    android:text="欢迎使用未来海豚认知训练平台平台为您提供针对脑认知的各种类型的训练,您也可以根据您的训练数据优化训练方向。"
-                    android:textColor="@android:color/white"
-                    android:textSize="@dimen/divider_24px" />
+                    android:layout_height="match_parent"
+                    android:background="@mipmap/icon_interstellar"
+                    android:visibility="gone">
+
+                    <ImageView
+                        android:id="@+id/leftDoorImage"
+                        android:layout_width="@dimen/divider_238px"
+                        android:layout_height="@dimen/divider_544px"
+                        android:layout_gravity="start"
+                        android:layout_marginStart="@dimen/divider_33px"
+                        android:layout_marginTop="@dimen/divider_29px"
+                        android:scaleType="fitXY"
+                        android:src="@mipmap/icon_left_door" />
 
-                <androidx.appcompat.widget.AppCompatButton
-                    android:id="@+id/opneBtn"
-                    android:layout_width="@dimen/divider_315px"
-                    android:layout_height="@dimen/divider_88px"
+                    <ImageView
+                        android:id="@+id/rightDoorImage"
+                        android:layout_width="@dimen/divider_235px"
+                        android:layout_height="@dimen/divider_544px"
+                        android:layout_gravity="end"
+                        android:layout_marginTop="@dimen/divider_29px"
+                        android:layout_marginEnd="@dimen/divider_32px"
+                        android:scaleType="fitXY"
+                        android:src="@mipmap/icon_right_door" />
+                </FrameLayout>
+
+                <LinearLayout
+                    android:id="@+id/effectLayout"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
                     android:layout_gravity="center_horizontal"
-                    android:layout_marginBottom="@dimen/divider_29px"
-                    android:background="@mipmap/icon_rectangle_button"
-                    android:gravity="center"
-                    android:text="开始训练"
-                    android:textColor="@android:color/white"
-                    android:textSize="@dimen/divider_28px"
-                    android:textStyle="bold" />
+                    android:background="@mipmap/icon_effect"
+                    android:orientation="vertical">
 
-            </LinearLayout>
+                    <androidx.appcompat.widget.AppCompatTextView
+                        android:layout_width="match_parent"
+                        android:layout_height="0dp"
+                        android:layout_marginStart="@dimen/divider_43px"
+                        android:layout_marginTop="@dimen/divider_316px"
+                        android:layout_marginEnd="@dimen/divider_49px"
+                        android:layout_weight="1"
+                        android:gravity="center"
+                        android:text="欢迎使用未来海豚认知训练平台平台为您提供针对脑认知的各种类型的训练,您也可以根据您的训练数据优化训练方向。"
+                        android:textColor="@android:color/white"
+                        android:textSize="@dimen/divider_24px" />
+
+                    <androidx.appcompat.widget.AppCompatButton
+                        android:id="@+id/opneBtn"
+                        android:layout_width="@dimen/divider_315px"
+                        android:layout_height="@dimen/divider_88px"
+                        android:layout_gravity="center_horizontal"
+                        android:layout_marginBottom="@dimen/divider_29px"
+                        android:background="@mipmap/icon_rectangle_button"
+                        android:gravity="center"
+                        android:text="开始训练"
+                        android:textColor="@android:color/white"
+                        android:textSize="@dimen/divider_28px"
+                        android:textStyle="bold" />
+
+                </LinearLayout>
+
+            </FrameLayout>
 
             <LinearLayout
                 android:id="@+id/taskLayout"

BIN
home/src/main/res/mipmap-xxhdpi/icon_interstellar.png


BIN
home/src/main/res/mipmap-xxhdpi/icon_left_door.png


BIN
home/src/main/res/mipmap-xxhdpi/icon_right_door.png


+ 5 - 0
home/src/main/res/values/dimens.xml

@@ -4,9 +4,12 @@
     <dimen name="divider_834px" tools:ignore="ResourceName">834px</dimen>
     <dimen name="divider_689px" tools:ignore="ResourceName">689px</dimen>
     <dimen name="divider_616px" tools:ignore="ResourceName">616px</dimen>
+    <dimen name="divider_606px" tools:ignore="ResourceName">606px</dimen>
     <dimen name="divider_561px" tools:ignore="ResourceName">561px</dimen>
+    <dimen name="divider_544px" tools:ignore="ResourceName">544px</dimen>
     <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
     <dimen name="divider_525px" tools:ignore="ResourceName">525px</dimen>
+    <dimen name="divider_516px" tools:ignore="ResourceName">516px</dimen>
     <dimen name="divider_503px" tools:ignore="ResourceName">503px</dimen>
     <dimen name="divider_472px" tools:ignore="ResourceName">472px</dimen>
     <dimen name="divider_445px" tools:ignore="ResourceName">445px</dimen>
@@ -51,7 +54,9 @@
     <dimen name="divider_250px" tools:ignore="ResourceName">250px</dimen>
     <dimen name="divider_249px" tools:ignore="ResourceName">249px</dimen>
     <dimen name="divider_245px" tools:ignore="ResourceName">245px</dimen>
+    <dimen name="divider_238px" tools:ignore="ResourceName">238px</dimen>
     <dimen name="divider_237px" tools:ignore="ResourceName">237px</dimen>
+    <dimen name="divider_235px" tools:ignore="ResourceName">235px</dimen>
     <dimen name="divider_234px" tools:ignore="ResourceName">234px</dimen>
     <dimen name="divider_230px" tools:ignore="ResourceName">230px</dimen>
     <dimen name="divider_229px" tools:ignore="ResourceName">229px</dimen>