1.添加背包礼物交友功能

This commit is contained in:
2025-09-16 00:56:58 +08:00
parent e87a368862
commit 72802ef7be
26 changed files with 321 additions and 120 deletions

View File

@@ -455,7 +455,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
CommonAppContext.getInstance().isShow = false;
ARouter.getInstance().build(ARouteConstants.ME)
.withFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.navigation();
// moveTaskToBack(true);
@@ -1012,11 +1012,8 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
if (msgType == 1005) {
LogUtils.e("@@@@" + "EventBusnujm2" + "playQueue.size()====" + messageEvent.getText().getGiftInfo());
// synchronized (roomMessageLock) {
// roomMessageEventQueue.add(messageEvent.getText().getGiftInfo().getPlay_image());
// }
QXGiftPlayerManager.getInstance(this).displayFullEffectView(messageEvent.getText().getGiftInfo());
// handleMsgType1005(messageEvent, text);
hand1005(messageEvent, text);
} else if (msgType == 123) {
EventBus.getDefault().post(new RoomSettingEvent());
@@ -1222,7 +1219,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
if (fromUserId != null && fromUserId.equals(currentUserId)) {
try {
mRoomInfoResp.getUser_info().setPit_number(Integer.parseInt(toBean.getPit_number()));
mRoomInfoResp.getUser_info().setPit_number(Integer.parseInt(fromBean.getPit_number()));
} catch (NumberFormatException e) {
LogUtils.e("Invalid pit number: " + toBean.getPit_number());
}
@@ -1230,7 +1227,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
try {
mRoomInfoResp.getUser_info().setPit_number(Integer.parseInt(fromBean.getPit_number()));
} catch (NumberFormatException e) {
LogUtils.e("Invalid pit number: " + fromBean.getPit_number());
LogUtils.e("Invalid pit number: " + toBean.getPit_number());
}
}
}
@@ -1255,6 +1252,10 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
} else if ("7".equals(typeId)) {
roomFragment.friendshipRoomFragmentEvent(messageEvent);
}
if (mRoomInfoResp.getUser_info().getPit_number()==9){
mBinding.roomTop.rl.setVisibility(View.VISIBLE);
ivSoundEffects(true);
}
}
@@ -1443,6 +1444,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
if ("9".equals(pitNumber) && userId == currentUserId) {
mBinding.roomTop.rl.setVisibility(View.VISIBLE);
ivSoundEffects(true);
}
if (userId == currentUserId) {
@@ -1456,11 +1458,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
switchMic(2);
}
if (pitNumber.equals("9")) {
ivSoundEffects(true);
} else {
ivSoundEffects(false);
}
String typeId = mRoomInfoResp.getRoom_info().getType_id();
if ("2".equals(typeId)) {
@@ -1488,6 +1486,12 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
} else {
roomFragment.updateSeatViewExchangedWithPitArray(mRoomInfoResp);
}
// if (pitNumber.equals("9") && mRoomInfoResp.getUser_info().getUser_id().equals(SpUtil.getUserId()+"")) {
// ivSoundEffects(true);
// } else {
// ivSoundEffects(false);
// }
}
private void handleMsgType1004(RoomMessageEvent messageEvent, RoomMessageEvent.T text) {
@@ -1522,6 +1526,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
isMusic = false;
}
mBinding.roomTop.rl.setVisibility(GONE);
ivSoundEffects(false);
}
String typeId = mRoomInfoResp.getRoom_info().getType_id();
@@ -1739,6 +1744,9 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
}
pendingRoomId = text.getRoom_id();
if (pendingRoomId == null){
return;
}
LogUtils.e("需要加入的房间idpendingRoomId: " + pendingRoomId);
roomSwitchRunnable = () -> {
if (!isFinishing() && !isDestroyed()) {
@@ -2480,18 +2488,14 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
default:
break;
}
// 类型房间规则覆盖
if ("2".equals(typeId)) {
rl_misc.setVisibility(View.GONE);
rl_more.setVisibility(View.GONE);
} else if (roleType != 5) {
if (roleType != 5) {
rl_misc.setVisibility(View.VISIBLE);
if (userPitNumber == 9) {
rl_more.setVisibility(GONE);
}
}
// label_id 和 type_id 联合判断
if (Arrays.asList("1", "3", "4").contains(typeId) && "2".equals(labelId)) {
rl_more.setVisibility(View.GONE);
@@ -2514,7 +2518,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
}
}
if ("7".equals(typeId)) {
if ("7".equals(typeId) || "2".equals(typeId)) {
rl_more.setVisibility(View.GONE);
rl_misc.setVisibility(View.GONE);
}
@@ -2667,8 +2671,10 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
this.mRoomInfoResp = resp;
if (mRoomInfoResp.getUser_info().getPit_number() == 9 && mRoomInfoResp.getUser_info().getUser_id().equals(SpUtil.getUserId() + "")) {
mBinding.roomTop.rl.setVisibility(View.VISIBLE);
ivSoundEffects(true);
} else {
mBinding.roomTop.rl.setVisibility(View.GONE);
ivSoundEffects(false);
}
}
@@ -2771,8 +2777,10 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
if (mRoomInfoResp.getUser_info().getPit_number() == 9 && mRoomInfoResp.getUser_info().getUser_id().equals(SpUtil.getUserId() + "")) {
mBinding.roomTop.rl.setVisibility(View.VISIBLE);
ivSoundEffects(true);
} else {
mBinding.roomTop.rl.setVisibility(View.GONE);
ivSoundEffects(false);
}
setupEffectView();
@@ -3269,7 +3277,7 @@ public class RoomActivity extends BaseMvpActivity<RoomPresenter, ActivityRoomBin
if (mRoomInfoResp.getRoom_info().getLabel_id().equals("2") || mRoomInfoResp.getRoom_info().getType_id().equals("7")) {
mBinding.rlMore.setVisibility(GONE);
mBinding.rlMisc.setVisibility(GONE);
// mBinding.rlMisc.setVisibility(GONE);
} else if (mRoomInfoResp.getRoom_info().getLabel_id().equals("1") || mRoomInfoResp.getRoom_info().getType_id().equals("3") || mRoomInfoResp.getRoom_info().getType_id().equals("4")) {
mBinding.rlMore.setVisibility(GONE);
mBinding.rlMisc.setVisibility(VISIBLE);

View File

@@ -41,6 +41,7 @@ import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.GiftLabelBean;
import com.xscm.moduleutil.bean.GiftNumBean;
import com.xscm.moduleutil.bean.GiftPackBean;
import com.xscm.moduleutil.bean.GiftPackListCount;
import com.xscm.moduleutil.bean.RewardUserBean;
import com.xscm.moduleutil.bean.RoomTypeModel;
import com.xscm.moduleutil.bean.RoonGiftModel;
@@ -99,7 +100,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
private final List<String> oldSelectedIds = new LinkedList<>();
private int jingp;//1:是点击的竞拍2是点击的送礼物
private String heart_id = "";//交友房中点击助力需要发送heart_id
private String auction_id;
@Override
protected RewardGiftPresenter bindPresenter() {
@@ -243,8 +244,8 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
pitList.addAll(uniquePitSet);
}
if (roomInfoResp.getRoom_auction().getAuction_user()!=null ){
if (roomInfoResp.getRoom_auction().getAuction_user().getUser_id()!=null && !roomInfoResp.getRoom_auction().getAuction_user().getUser_id().equals(SpUtil.getUserId()+"")) {
if (roomInfoResp.getRoom_auction().getAuction_user() != null) {
if (roomInfoResp.getRoom_auction().getAuction_user().getUser_id() != null && !roomInfoResp.getRoom_auction().getAuction_user().getUser_id().equals(SpUtil.getUserId() + "")) {
RewardUserBean rewardUserBean = new RewardUserBean();
rewardUserBean.setUser_id(roomInfoResp.getRoom_auction().getAuction_user().getUser_id());
rewardUserBean.setNickname(roomInfoResp.getRoom_auction().getAuction_user().getNickname());
@@ -260,7 +261,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
for (RoomPitBean bean : pitList) {
if (bean.getPit_number().equals(targetPit) &&
!bean.getUser_id().equals("0") && !bean.getUser_id().equals("") &&
!bean.getUser_id().equals(SpUtil.getUserId()+"")) {
!bean.getUser_id().equals(SpUtil.getUserId() + "")) {
RewardUserBean rewardUserBean = new RewardUserBean();
rewardUserBean.setUser_id(bean.getUser_id());
@@ -398,17 +399,24 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
all = !all;
oldSelectedIds.clear();
oldSelectedIds.addAll(gifyuseradapter.getAllSelectedIds());
}else if (view1.getId() == R.id.tv_bb_qs){
int count =gifyuseradapter.getSelectCount();
if (count<0){
} else if (view1.getId() == R.id.tv_bb_qs) {
int count = gifyuseradapter.getSelectCount();
if (count < 0) {
ToastUtils.show("请选择打赏的用户");
return;
}
if (gifyuseradapter.getUserIdCount()>1){
if (gifyuseradapter.getUserIdCount() > 1) {
ToastUtils.show("一键全送只能选择一个用户");
return;
}
MvpPre.getGiftPack(roomId,gifyuseradapter.getUserIdToString(),heart_id);
if (userInfo != null) {
if (userInfo.getAuction_id() != null) {
auction_id =userInfo.getAuction_id();
} else {
auction_id = "";
}
}
MvpPre.getGiftPack(roomId, gifyuseradapter.getUserIdToString(), heart_id, auction_id);
}
}
@@ -464,7 +472,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
FragmentManager fm = getParentFragmentManager();
if (fm != null && !fm.isDestroyed()) {
GiftLotteryDialog newDialog = GiftLotteryDialog.newInstance(
String.valueOf(gift.getGift_bag()), roomId, userId,heart_id);
String.valueOf(gift.getGift_bag()), roomId, userId, heart_id);
newDialog.show(fm, "GiftLotteryDialog");
}
} catch (Exception e) {
@@ -648,6 +656,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
mBinding.viewPager.setOffscreenPageLimit(0);
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
mBinding.slidingTabLayout.setCurrentTab(1);
refreshCurrentGiftFragment(giftLabelBeans.get(1).getId(),1,roomId);
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
@@ -658,6 +667,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
public void onPageSelected(int position) {
// 当页面切换时,控制 tv_bb_qs 按钮的显示
updateTvBbQsVisibility(position);
refreshCurrentGiftFragment(giftLabelBeans.get(position).getId(),1,roomId);
}
@Override
@@ -668,6 +678,35 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
// 初始化时设置按钮可见性
updateTvBbQsVisibility(1);
}
// 调用示例
private void refreshCurrentGiftFragment(String id,int type,String roomId) {
// int currentPosition = mBinding.viewPager.getCurrentItem();
// if (currentPosition >= 0 && currentPosition < fragmentList.size()) {
// Fragment fragment = fragmentList.get(currentPosition);
// if (fragment instanceof GiftTwoDetailsFragment && fragment.isAdded()) {
// GiftTwoDetailsFragment giftFragment = (GiftTwoDetailsFragment) fragment;
// // 调用 fragment 的公共方法
// giftFragment.loadDataIfNeeded(id,type,roomId); // 假设 GiftTwoDetailsFragment 有这个方法
// }
// }
if (getCurrentGiftFragment()!=null){
getCurrentGiftFragment().loadDataIfNeeded(id,type,roomId);
}
}
private GiftTwoDetailsFragment getCurrentGiftFragment() {
int currentPosition = mBinding.viewPager.getCurrentItem();
// 使用 ViewPager 的 adapter 获取当前 fragment
MyFragmentPagerAdapter adapter = (MyFragmentPagerAdapter) mBinding.viewPager.getAdapter();
if (adapter != null) {
// 直接从 adapter 获取 fragment
Fragment fragment = adapter.getItem(currentPosition);
if (fragment instanceof GiftTwoDetailsFragment) {
return (GiftTwoDetailsFragment) fragment;
}
}
return null;
}
// 控制 tv_bb_qs 按钮显示的方法
private void updateTvBbQsVisibility(int currentPosition) {
@@ -676,11 +715,15 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
// 显示按钮
if (mBinding.tvBbQs != null) {
mBinding.tvBbQs.setVisibility(View.VISIBLE);
mBinding.cz.setVisibility(View.GONE);
MvpPre.getGiftPackListCount();
}
} else {
// 隐藏按钮
if (mBinding.tvBbQs != null) {
mBinding.tvBbQs.setVisibility(View.GONE);
mBinding.cz.setVisibility(View.VISIBLE);
MvpPre.wallet();
}
}
}
@@ -695,7 +738,7 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
// dismiss();
if (mBinding.viewPager.getCurrentItem() == 0) {
MvpPre.wallet();
MvpPre.getGiftPackListCount();
EventBus.getDefault().post(beibaoId);
return;
}
@@ -739,14 +782,21 @@ public class RoomGiftDialogFragment extends BaseMvpDialogFragment<RewardGiftPres
@Override
public void getGiftPack(String s) {
if (s!=null){
com.hjq.toast.ToastUtils.show( s);
if (s != null) {
com.hjq.toast.ToastUtils.show(s);
dismiss();
}else {
} else {
com.hjq.toast.ToastUtils.show("一键全清背包礼物失败");
}
}
@Override
public void getGiftPackListCount(GiftPackListCount giftPackListCount) {
if (giftPackListCount != null){
mBinding.tvRewardGift.setText(giftPackListCount.getCount());
}
}
private class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
private List<GiftLabelBean> list;

View File

@@ -21,6 +21,7 @@ import com.xscm.moduleutil.base.BaseMvpDialogFragment;
import com.xscm.moduleutil.bean.GiftLabelBean;
import com.xscm.moduleutil.bean.GiftNumBean;
import com.xscm.moduleutil.bean.GiftPackBean;
import com.xscm.moduleutil.bean.GiftPackListCount;
import com.xscm.moduleutil.bean.RewardUserBean;
import com.xscm.moduleutil.bean.RoomWheatEvent;
import com.xscm.moduleutil.bean.RoonGiftModel;
@@ -220,6 +221,11 @@ public class RoomWheatGiftSettingFragment extends BaseMvpDialogFragment<RewardGi
}
@Override
public void getGiftPackListCount(GiftPackListCount giftPackListCount) {
}
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragmentList;

View File

@@ -411,6 +411,9 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
if (userId==SpUtil.getUserId() && pitNumber.equals("9")){
myPitNumber=9;
configGameOptionBtn();
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(true);
// }
}
for (int i = 0; i < mWheatViews.size(); i++){
if (i==Integer.parseInt(pitNumber) - 1){
@@ -443,6 +446,9 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
if (pitNumber.equals("9")){
myPitNumber=0;
configGameOptionBtn();
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(false);
// }
}
for (int i = 0; i < mWheatViews.size(); i++){
if (i==Integer.parseInt(pitNumber) - 1){

View File

@@ -836,9 +836,9 @@ public class PublicScreenEaseChatFragment extends BaseMvpFragment<PublicScreenEa
break;
case 1049:
if (text != null && text.getStep() != 3) {
// if (text != null && text.getStep() != 3) {
postAndAddMessage(message);
}
// }
break;
case 1005:

View File

@@ -161,6 +161,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
public void onClick(View v) {
if (!isShow) {
switchMic(2);
isMute(1);
} else {
switchMic(1);
}
@@ -319,7 +320,7 @@ public class RoomCabinFragment extends BaseRoomFragment<RoomCabinPresenter, Room
AgoraManager.getInstance(getActivity()).muteLocalAudioStream(true);
AgoraManager.getInstance(getActivity()).setLocalAudioEnabled(false,SpUtil.getUserId()+"");
isShow = true;
isMute(1);
}
}

View File

@@ -1344,6 +1344,7 @@ public class RoomFragment extends BaseMvpFragment<RoomPresenter, FragmentRoomBin
break;
case 1021:
ktvFragment.event1021(messageEvent);
break;
case 1005:
ktvFragment.event1005(messageEvent);
break;

View File

@@ -373,10 +373,13 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
}
};
mBinding.recyclerView.setAdapter(adapter);
// if (mBinding.llBz.getVisibility()== View.VISIBLE){
// AgoraManager.getInstance(getActivity()).selectAudioTrack(1);
// mBinding.imBz.setImageResource(com.xscm.moduleutil.R.mipmap.accompany_off);
// mBinding.tvBz.setText("伴奏");
// }
AgoraManager.getInstance(getActivity()).selectAudioTrack(1);
isRotate = true;
isRotate = false;
RoomKtvWheatView muYc = mBinding.muYc;
muYc.setOnClickListener(new View.OnClickListener() {
@Override
@@ -746,6 +749,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
if (pitBean.getPit_number().equals("9")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
roomDefaultWheatView.setData(pitBean);
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(true);
// }
} else if (pitBean.getPit_number().equals("10")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
roomDefaultWheatView.setData(pitBean);
@@ -788,6 +794,9 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
if (pitBean.getPit_number().equals("9")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
roomDefaultWheatView.setData(pitBean);
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(false);
// }
} else if (pitBean.getPit_number().equals("10")) {
RoomKtvWheatView roomDefaultWheatView = mBinding.muJb;
roomDefaultWheatView.setData(pitBean);

View File

@@ -1340,8 +1340,18 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
pitBean.setDress(message.getText().getFromUserInfo().getDress());
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
// if (pitBean.getPit_number().equals("9")){
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(true);
// }
// }
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
} else {
// if (pitBean.getPit_number().equals("9")){
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(true);
// }
// }
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
}
// 通知父 Fragment
@@ -1369,8 +1379,18 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
pitBean.setDress("");
roomInfoResp.getRoom_info().getPit_list().set(Integer.parseInt(message.getText().getPit_number()) - 1, pitBean);
if (roomInfoRespPk == null || roomInfoRespPk.getPk_info() == null) {
// if (pitBean.getPit_number().equals("9")){
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(false);
// }
// }
wheatLayoutSingManager.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
} else {
// if (pitBean.getPit_number().equals("9")){
// if (getActivity() instanceof RoomActivity) {
// ((RoomActivity) getActivity()).ivSoundEffects(false);
// }
// }
wheatLayoutManager1.updateSingleWheat(pitBean, Integer.parseInt(message.getText().getPit_number()));
}
if (SpUtil.getUserId() == message.getText().getFromUserInfo().getUser_id()) {

View File

@@ -286,7 +286,7 @@
<RelativeLayout
android:id="@+id/rl_misc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="20dp"
android:layout_marginEnd="@dimen/dp_5"
android:layout_weight="0.3">
@@ -492,7 +492,8 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible">
<FrameLayout
android:id="@+id/fl_screenshare"
@@ -506,6 +507,7 @@
android:layout_gravity="end|bottom"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_5"
android:translationZ="10dp"
android:src="@mipmap/quan" />
<!-- 自定义内容 -->
</com.xscm.moduleutil.widget.floatingView.Floa>

View File

@@ -195,7 +195,7 @@
android:layout_width="@dimen/dp_13"
android:layout_height="@dimen/dp_16"
android:layout_gravity="center"
android:src="@mipmap/accompany_off" />
android:src="@mipmap/accompany_on" />
<TextView
android:id="@+id/tv_bz"
@@ -203,7 +203,7 @@
android:layout_height="@dimen/dp_14"
android:layout_gravity="center"
android:gravity="center"
android:text="伴奏"
android:text="原唱"
android:textColor="@color/color_white"
android:textSize="@dimen/sp_10" />
</LinearLayout>