From 76f499f0227200ca98c3f93b58f384a420a11ef0 Mon Sep 17 00:00:00 2001
From: lzl <1239365383@qq.com>
Date: Thu, 22 Jan 2026 10:18:41 +0800
Subject: [PATCH] =?UTF-8?q?pk=E5=A4=B4=E5=83=8F=E6=A1=86=E5=B0=8F=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=EF=BC=8Ccp=E5=8A=A8=E7=94=BB=E4=B8=8D=E5=87=BA?=
=?UTF-8?q?=E6=9D=A5=E5=A4=B4=E5=83=8F=E5=8A=A8=E7=94=BB=E6=9C=80=E5=A4=9A?=
=?UTF-8?q?10=E6=AC=A1=EF=BC=8Cpk=E5=88=87=E6=8D=A2=E6=88=BF=E9=97=B4?=
=?UTF-8?q?=E5=88=B7=E6=96=B0UI=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../moduleutil/utils/roomview/RoomCPView.java | 41 ++++++++++++++++---
.../res/layout/room_view_default_wheat.xml | 32 ++++++++-------
.../room/fragment/SingSongFragment.java | 4 +-
3 files changed, 53 insertions(+), 24 deletions(-)
diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/RoomCPView.java b/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/RoomCPView.java
index ba0d1955..de60f742 100644
--- a/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/RoomCPView.java
+++ b/BaseModule/src/main/java/com/xscm/moduleutil/utils/roomview/RoomCPView.java
@@ -193,11 +193,21 @@ public class RoomCPView extends FrameLayout {
LogUtils.e("onFailed", s);
// 确保所有UI操作在主线程中执行
post(() -> {
- // 动画失败,隐藏视图
- setVisibility(View.GONE);
- anim_cp.setVisibility(View.GONE);
- // 继续播放下一个
- loadStartAnimation();
+ if (anim_cp != null) {
+ // 停止头像动画
+ stopAvatarAnimation();
+
+ // 隐藏动画视图和头像
+ anim_cp.setVisibility(View.GONE);
+ avatarContainer1.setVisibility(View.GONE);
+
+ if (isOnece) {
+ return;
+ }
+ // 通知播放完成
+ notifyPlaybackComplete();
+ loadStartAnimation();
+ }
});
}
});
@@ -752,12 +762,31 @@ public class RoomCPView extends FrameLayout {
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, -0.01f);
avatarsFloatUp.setDuration(900); // 增加动画持续时间,使动画更平滑
- avatarsFloatUp.setRepeatCount(Animation.INFINITE);
+ avatarsFloatUp.setRepeatCount(10);
avatarsFloatUp.setRepeatMode(Animation.REVERSE);
avatarsAnimationSet.addAnimation(avatarsFloatUp);
avatarsParentContainer.startAnimation(avatarsAnimationSet);
+ // 动画结束后重置位置
+ avatarsAnimationSet.setAnimationListener(new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart(Animation animation) {
+
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation) {
+ if (avatarContainer1.getVisibility() == View.VISIBLE) {
+ avatarContainer1.setVisibility(View.GONE);
+ }
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation) {
+ }
+ });
+
}
/**
diff --git a/BaseModule/src/main/res/layout/room_view_default_wheat.xml b/BaseModule/src/main/res/layout/room_view_default_wheat.xml
index a57609d2..9ff93133 100644
--- a/BaseModule/src/main/res/layout/room_view_default_wheat.xml
+++ b/BaseModule/src/main/res/layout/room_view_default_wheat.xml
@@ -29,6 +29,22 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
-