礼物面板UI改造

This commit is contained in:
huangjian
2022-10-10 16:15:39 +08:00
parent 349f6d9d4e
commit 4f7815a692
28 changed files with 881 additions and 737 deletions

View File

@@ -64,7 +64,7 @@ public class GiftInfoVm extends BaseItem<GiftInfo> {
if (data.getConsumeType() == GiftInfo.CONSUME_TYPE_GOLD) { if (data.getConsumeType() == GiftInfo.CONSUME_TYPE_GOLD) {
radishDrawable = null; radishDrawable = null;
radishDrawableSelected = null; radishDrawableSelected = null;
goldText.set(context.getResources().getString(R.string.how_much_gold, data.getGoldPrice())); goldText.set(String.valueOf(data.getGoldPrice()));
} else { } else {
radishDrawable = context.getResources().getDrawable(R.drawable.icon_radish_transparent); radishDrawable = context.getResources().getDrawable(R.drawable.icon_radish_transparent);
radishDrawableSelected = context.getResources().getDrawable(R.drawable.icon_radish_transparent_selected); radishDrawableSelected = context.getResources().getDrawable(R.drawable.icon_radish_transparent_selected);

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.graphics.Color;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -83,18 +84,15 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
public void onBindViewHolder(GiftAvatarAdapter.ViewHolder holder, int position) { public void onBindViewHolder(GiftAvatarAdapter.ViewHolder holder, int position) {
holder.avatarContainer.setTag(holder.getAdapterPosition()); holder.avatarContainer.setTag(holder.getAdapterPosition());
if (position == 0) { if (position == 0) {
holder.allMicState.setVisibility(View.GONE);
holder.micNumber.setVisibility(View.GONE); holder.micNumber.setVisibility(View.GONE);
holder.avatar.setVisibility(View.GONE); holder.avatar.setVisibility(View.GONE);
holder.ivAll.setVisibility(View.VISIBLE); holder.ivAll.setVisibility(View.VISIBLE);
holder.ivAll.setAlpha(selectType == SELECT_TYPE_WHOLE_MIC ? 1f : 0.5f); holder.ivAll.setAlpha(selectType == SELECT_TYPE_WHOLE_MIC ? 1f : 0.5f);
holder.avatarCover.setVisibility(View.GONE); holder.avatarCover.setVisibility(View.GONE);
holder.micNumberCover.setVisibility(View.GONE);
} else { } else {
holder.avatar.setVisibility(View.VISIBLE); holder.avatar.setVisibility(View.VISIBLE);
holder.ivAll.setVisibility(View.GONE); holder.ivAll.setVisibility(View.GONE);
final MicMemberInfo micMemberInfo = micMemberInfos.get(position - 1); final MicMemberInfo micMemberInfo = micMemberInfos.get(position - 1);
holder.allMicState.setVisibility(View.GONE);
ImageLoadUtils.loadAvatar(holder.avatar.getContext(), micMemberInfo.getAvatar(), holder.avatar); ImageLoadUtils.loadAvatar(holder.avatar.getContext(), micMemberInfo.getAvatar(), holder.avatar);
// 强制给一个透明的边框,避免因为复用导致的出现边框 // 强制给一个透明的边框,避免因为复用导致的出现边框
holder.avatar.setBorderColor(context.getResources().getColor(R.color.transparent)); holder.avatar.setBorderColor(context.getResources().getColor(R.color.transparent));
@@ -107,25 +105,28 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
holder.micNumber.setText(String.valueOf(micMemberInfo.getMicPosition() + 1)); holder.micNumber.setText(String.valueOf(micMemberInfo.getMicPosition() + 1));
} }
if (micMemberInfo.isInPkMode()) { int boardColor = context.getResources().getColor(R.color.color_5FCCE4);
int boardColor = context.getResources().getColor(R.color.color_FFFFFF); int solidColor = context.getResources().getColor(R.color.color_5FCCE4);
int solidColor = context.getResources().getColor(R.color.appColor);
if (micMemberInfo.getTeamId() == PKTeamInfo.TEAM_RED) {
boardColor = solidColor = context.getResources().getColor(R.color.color_female_FE3F77);
} else if (micMemberInfo.getTeamId() == PKTeamInfo.TEAM_BLUE) {
boardColor = solidColor = context.getResources().getColor(R.color.color_male_16AEFD);
}
holder.micNumber.setSolid(solidColor);
holder.avatar.setBorderColor(boardColor);
}
if (selectType == SELECT_TYPE_WHOLE_MIC || micMemberInfo.isSelected()) { if (selectType == SELECT_TYPE_WHOLE_MIC || micMemberInfo.isSelected()) {
//选中 //选中
holder.avatarCover.setVisibility(View.GONE); holder.avatarCover.setVisibility(View.GONE);
holder.micNumberCover.setVisibility(View.GONE); holder.avatar.setBorderColor(boardColor);
holder.avatar.setBorderColor(context.getResources().getColor(R.color.appColor)); holder.micNumber.setTextColor(context.getResources().getColor(R.color.color_161958));
holder.micNumber.setSolid(solidColor);
} else { } else {
holder.micNumberCover.setVisibility(View.VISIBLE);
holder.avatarCover.setVisibility(View.VISIBLE); holder.avatarCover.setVisibility(View.VISIBLE);
holder.micNumber.setTextColor(context.getResources().getColor(R.color.white));
holder.micNumber.setSolid(context.getResources().getColor(R.color.color_999999));
holder.avatar.setBorderColor(Color.TRANSPARENT);
}
if (micMemberInfo.isInPkMode()) {
if (micMemberInfo.getTeamId() == PKTeamInfo.TEAM_RED) {
boardColor = context.getResources().getColor(R.color.color_female_FE3F77);
} else if (micMemberInfo.getTeamId() == PKTeamInfo.TEAM_BLUE) {
boardColor = context.getResources().getColor(R.color.color_male_16AEFD);
}
holder.avatar.setBorderColor(boardColor);
} }
} }
} }
@@ -186,9 +187,7 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
private CircleImageView avatar; private CircleImageView avatar;
private View avatarCover; private View avatarCover;
private SuperTextView micNumber; private SuperTextView micNumber;
private TextView allMicState;
private RelativeLayout avatarContainer; private RelativeLayout avatarContainer;
private View micNumberCover;
private ImageView ivAll; private ImageView ivAll;
public ViewHolder(View itemView) { public ViewHolder(View itemView) {
@@ -196,10 +195,8 @@ public class GiftAvatarAdapter extends RecyclerView.Adapter<GiftAvatarAdapter.Vi
avatar = itemView.findViewById(R.id.avatar); avatar = itemView.findViewById(R.id.avatar);
avatarCover = itemView.findViewById(R.id.avatar_cover); avatarCover = itemView.findViewById(R.id.avatar_cover);
micNumber = itemView.findViewById(R.id.mic_number); micNumber = itemView.findViewById(R.id.mic_number);
allMicState = itemView.findViewById(R.id.all_mic_state);
avatarContainer = itemView.findViewById(R.id.avatar_container); avatarContainer = itemView.findViewById(R.id.avatar_container);
avatarContainer.setOnClickListener(GiftAvatarAdapter.this); avatarContainer.setOnClickListener(GiftAvatarAdapter.this);
micNumberCover = itemView.findViewById(R.id.mic_number_cover);
ivAll = itemView.findViewById(R.id.iv_all); ivAll = itemView.findViewById(R.id.iv_all);
} }
} }

View File

@@ -21,7 +21,6 @@ import android.view.animation.RotateAnimation;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.HorizontalScrollView;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@@ -33,30 +32,9 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.github.mmin18.widget.RealtimeBlurView;
import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
import com.mango.moshen.BR;
import com.mango.moshen.R;
import com.mango.moshen.avroom.firstcharge.FirstChargeDialog;
import com.mango.moshen.base.BaseActivity;
import com.mango.moshen.common.widget.CircleImageView;
import com.mango.moshen.radish.task.activity.TaskCenterActivity;
import com.mango.moshen.ui.gift.dialog.GiftInfoVm;
import com.mango.moshen.ui.gift.dialog.PageIndicatorView;
import com.mango.moshen.ui.pay.ChargeDialog;
import com.mango.moshen.ui.utils.ImageLoadUtils;
import com.mango.moshen.ui.webview.DialogWebViewActivity;
import com.mango.moshen.ui.widget.dialog.GiftManualQuantityDialog;
import com.mango.moshen.ui.widget.drawgift.DrawGiftHelper;
import com.mango.moshen.ui.widget.drawgift.DrawGiftView;
import com.mango.moshen.ui.widget.magicindicator.GiftIndicator;
import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil;
import com.mango.moshen.ui.widget.recyclerview.decoration.VerticalDecoration;
import com.mango.moshen.utils.RegexUtil;
import com.mango.moshen.utils.SpannableBuilder;
import com.mango.moshen.vip.VipMainActivity;
import com.mango.core.UriProvider; import com.mango.core.UriProvider;
import com.mango.core.auth.AuthModel; import com.mango.core.auth.AuthModel;
import com.mango.core.bean.RoomQueueInfo; import com.mango.core.bean.RoomQueueInfo;
@@ -83,12 +61,35 @@ import com.mango.core.user.UserModel;
import com.mango.core.user.bean.UserInfo; import com.mango.core.user.bean.UserInfo;
import com.mango.core.utils.StringExtensionKt; import com.mango.core.utils.StringExtensionKt;
import com.mango.core.utils.net.RxHelper; import com.mango.core.utils.net.RxHelper;
import com.mango.moshen.BR;
import com.mango.moshen.R;
import com.mango.moshen.avroom.firstcharge.FirstChargeDialog;
import com.mango.moshen.base.BaseActivity;
import com.mango.moshen.common.widget.CircleImageView;
import com.mango.moshen.radish.task.activity.TaskCenterActivity;
import com.mango.moshen.ui.gift.dialog.GiftInfoVm;
import com.mango.moshen.ui.gift.dialog.PageIndicatorView;
import com.mango.moshen.ui.pay.ChargeDialog;
import com.mango.moshen.ui.utils.ImageLoadUtils;
import com.mango.moshen.ui.webview.DialogWebViewActivity;
import com.mango.moshen.ui.widget.dialog.GiftManualQuantityDialog;
import com.mango.moshen.ui.widget.drawgift.DrawGiftHelper;
import com.mango.moshen.ui.widget.drawgift.DrawGiftView;
import com.mango.moshen.ui.widget.magicindicator.GiftIndicator;
import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil;
import com.mango.moshen.ui.widget.rollviewpager.RollPagerView;
import com.mango.moshen.ui.widget.rollviewpager.adapter.StaticPagerAdapter;
import com.mango.moshen.utils.RegexUtil;
import com.mango.moshen.utils.SpannableBuilder;
import com.mango.moshen.vip.VipMainActivity;
import com.mango.xchat_android_library.bindinglist.IItem; import com.mango.xchat_android_library.bindinglist.IItem;
import com.mango.xchat_android_library.bindinglist.MultiTypeAdapter; import com.mango.xchat_android_library.bindinglist.MultiTypeAdapter;
import com.mango.xchat_android_library.utils.FormatUtils; import com.mango.xchat_android_library.utils.FormatUtils;
import com.mango.xchat_android_library.utils.ListUtils; import com.mango.xchat_android_library.utils.ListUtils;
import com.mango.xchat_android_library.utils.SingleToastUtil; import com.mango.xchat_android_library.utils.SingleToastUtil;
import com.mango.xchat_android_library.utils.TextWatcherWrapper; import com.mango.xchat_android_library.utils.TextWatcherWrapper;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.trello.rxlifecycle3.components.support.RxAppCompatActivity;
import com.zyyoona7.lib.EasyPopup; import com.zyyoona7.lib.EasyPopup;
import com.zyyoona7.lib.HorizontalGravity; import com.zyyoona7.lib.HorizontalGravity;
import com.zyyoona7.lib.VerticalGravity; import com.zyyoona7.lib.VerticalGravity;
@@ -129,7 +130,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
* 被选中的uid是否在麦上 * 被选中的uid是否在麦上
*/ */
private final boolean userOnMic; private final boolean userOnMic;
private View mContentView;
private ViewPager gridView; private ViewPager gridView;
private PageIndicatorView indicatorView; private PageIndicatorView indicatorView;
private RecyclerView avatarList; private RecyclerView avatarList;
@@ -143,9 +143,8 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private EasyPopup easyPopup; private EasyPopup easyPopup;
private TextView giftNumberText; private TextView giftNumberText;
private ImageView giftNumberOptions; private ImageView giftNumberOptions;
private ImageView ivOpenNoble; private ImageView ivLuckyBagIntro;
private View ivFirstRecharge; private View flLuckyDesc;
private TextView tvLuckyBagIntro;
private TextView tvGiftValue; private TextView tvGiftValue;
private EditText etSendMessage; private EditText etSendMessage;
private Button sendGiftButton; private Button sendGiftButton;
@@ -163,7 +162,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private ImageView ivAvatarLevel; private ImageView ivAvatarLevel;
private TextView tvNickCharm; private TextView tvNickCharm;
private TextView tvNickLevel; private TextView tvNickLevel;
private View llWeekIn; private View ivWeekStarIn;
private View llStarWeek; private View llStarWeek;
private List<MicMemberInfo> micMemberInfos; private List<MicMemberInfo> micMemberInfos;
private View giftNumLayout; private View giftNumLayout;
@@ -173,7 +172,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private List<List<GiftInfoVm>> pagerList; private List<List<GiftInfoVm>> pagerList;
private WalletInfo goldWalletInfo = PayModel.get().getCurrentWalletInfo(); private WalletInfo goldWalletInfo = PayModel.get().getCurrentWalletInfo();
private int itemType = ITEM_TYPE_GOLD; private int itemType = ITEM_TYPE_GOLD;
private HorizontalScrollView hsvTabs;
private View rlGifts; private View rlGifts;
private View llTabs; private View llTabs;
private View llDrawGift; private View llDrawGift;
@@ -181,6 +179,12 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
private View ivDrawGiftRemoveLast; private View ivDrawGiftRemoveLast;
private View ivDrawGiftRemoveAll; private View ivDrawGiftRemoveAll;
private View ivDrawGiftClose; private View ivDrawGiftClose;
private TextView tvTabSendGift;
private TextView tvTabInteraction;
private View llTabType;
private View lineTabType;
private RealtimeBlurView realtimeBlurView;
private RollPagerView pagerViewVip;
private boolean isShowDrawGiftModel; private boolean isShowDrawGiftModel;
@Nullable @Nullable
private DrawGiftHelper drawGiftHelper; private DrawGiftHelper drawGiftHelper;
@@ -319,8 +323,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
setCanceledOnTouchOutside(true); setCanceledOnTouchOutside(true);
setContentView(R.layout.dialog_bottom_gift); setContentView(R.layout.dialog_bottom_gift);
compositeDisposable = new CompositeDisposable(); compositeDisposable = new CompositeDisposable();
mContentView = findViewById(R.id.ll_dialog_bottom_gift); init();
init(mContentView);
FrameLayout bottomSheet = findViewById(R.id.design_bottom_sheet); FrameLayout bottomSheet = findViewById(R.id.design_bottom_sheet);
if (bottomSheet != null) { if (bottomSheet != null) {
BottomSheetBehavior.from(bottomSheet).setSkipCollapsed(false); BottomSheetBehavior.from(bottomSheet).setSkipCollapsed(false);
@@ -357,43 +360,50 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
} }
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
private void init(View root) { private void init() {
root.findViewById(R.id.tv_recharge).setOnClickListener(this); findViewById(R.id.tv_recharge).setOnClickListener(this);
sendGiftButton = root.findViewById(R.id.btn_send); tvTabSendGift = findViewById(R.id.tv_tab_send_gift);
layoutEmpty = root.findViewById(R.id.layout_empty); tvTabSendGift.setOnClickListener(this);
layoutLoading = root.findViewById(R.id.layout_loading); tvTabInteraction = findViewById(R.id.tv_tab_interaction);
layoutLoadFiled = root.findViewById(R.id.layout_load_failed); tvTabInteraction.setOnClickListener(this);
reloadView = root.findViewById(R.id.tv_reload); realtimeBlurView = findViewById(R.id.realtime_blur_view);
pagerViewVip = findViewById(R.id.pager_view_vip);
llTabType = findViewById(R.id.ll_tab_type);
lineTabType = findViewById(R.id.line_tab_type);
sendGiftButton = findViewById(R.id.btn_send);
layoutEmpty = findViewById(R.id.layout_empty);
layoutLoading = findViewById(R.id.layout_loading);
layoutLoadFiled = findViewById(R.id.layout_load_failed);
reloadView = findViewById(R.id.tv_reload);
reloadView.setOnClickListener(this); reloadView.setOnClickListener(this);
loadingView = root.findViewById(R.id.iv_loading); loadingView = findViewById(R.id.iv_loading);
hsvTabs = root.findViewById(R.id.hsv_tabs); rlGifts = findViewById(R.id.rl_gifts);
rlGifts = root.findViewById(R.id.rl_gifts); llTabs = findViewById(R.id.ll_tabs);
llTabs = root.findViewById(R.id.ll_tabs); llDrawGift = findViewById(R.id.ll_draw_gift);
llDrawGift = root.findViewById(R.id.ll_draw_gift); tvDrawGiftTips = findViewById(R.id.tv_draw_gift_tips);
tvDrawGiftTips = root.findViewById(R.id.tv_draw_gift_tips); ivDrawGiftRemoveLast = findViewById(R.id.iv_draw_gift_remove_last);
ivDrawGiftRemoveLast = root.findViewById(R.id.iv_draw_gift_remove_last); ivDrawGiftRemoveAll = findViewById(R.id.iv_draw_gift_remove_all);
ivDrawGiftRemoveAll = root.findViewById(R.id.iv_draw_gift_remove_all); ivDrawGiftClose = findViewById(R.id.iv_draw_gift_close);
ivDrawGiftClose = root.findViewById(R.id.iv_draw_gift_close);
ivDrawGiftClose.setOnClickListener(this); ivDrawGiftClose.setOnClickListener(this);
ivDrawGiftRemoveLast.setOnClickListener(this); ivDrawGiftRemoveLast.setOnClickListener(this);
ivDrawGiftRemoveAll.setOnClickListener(this); ivDrawGiftRemoveAll.setOnClickListener(this);
showLoadingView(); showLoadingView();
showLoadingAnimation(); showLoadingAnimation();
sendGiftButton.setOnClickListener(this); sendGiftButton.setOnClickListener(this);
giftNumLayout = root.findViewById(R.id.gift_number_layout); giftNumLayout = findViewById(R.id.gift_number_layout);
giftNumLayout.setOnClickListener(this); giftNumLayout.setOnClickListener(this);
List<GiftTab> tabInfoList = new ArrayList<>(); List<GiftTab> tabInfoList = new ArrayList<>();
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_NORMAL, "礼物", "礼物")); tabInfoList.add(new GiftTab(GiftIndicator.TYPE_NORMAL, "礼物", "礼物"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_LUCKY, "幸运礼物", "幸运礼物")); tabInfoList.add(new GiftTab(GiftIndicator.TYPE_LUCKY, "幸运", "幸运"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_NOBLE, "贵族", "贵族")); tabInfoList.add(new GiftTab(GiftIndicator.TYPE_NOBLE, "贵族", "贵族"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_WEEK, "周星礼物", "周星礼物")); tabInfoList.add(new GiftTab(GiftIndicator.TYPE_WEEK, "周星", "周星"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_DRAW_GIFT, "涂鸦礼物", "涂鸦礼物")); tabInfoList.add(new GiftTab(GiftIndicator.TYPE_DRAW_GIFT, "涂鸦礼物", "涂鸦礼物"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_KNAP, "背包", "背包")); tabInfoList.add(new GiftTab(GiftIndicator.TYPE_KNAP, "背包", "背包"));
giftIndicator = root.findViewById(R.id.gift_indicator); giftIndicator = findViewById(R.id.gift_indicator);
giftIndicator.initTab( giftIndicator.initTab(
tabInfoList, tabInfoList,
context.getResources().getColor(R.color.color_999999), context.getResources().getColor(R.color.white),
context.getResources().getColor(R.color.color_ffbc51) context.getResources().getColor(R.color.color_5FCCE4)
); );
//noinspection ResultOfMethodCallIgnored //noinspection ResultOfMethodCallIgnored
giftIndicator.addClick() giftIndicator.addClick()
@@ -412,44 +422,41 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
} else { } else {
giftIndicator.hidePosition(GiftIndicator.TYPE_LUCKY); giftIndicator.hidePosition(GiftIndicator.TYPE_LUCKY);
giftIndicator.hidePosition(GiftIndicator.TYPE_DRAW_GIFT); giftIndicator.hidePosition(GiftIndicator.TYPE_DRAW_GIFT);
llTabType.setVisibility(View.GONE);
lineTabType.setVisibility(View.GONE);
realtimeBlurView.setOverlayColor(Color.parseColor("#B3020023"));
} }
gridView = root.findViewById(R.id.gridView); gridView = findViewById(R.id.gridView);
indicatorView = root.findViewById(R.id.indicator); indicatorView = findViewById(R.id.indicator);
indicatorView.setVisibility(View.INVISIBLE); indicatorView.setVisibility(View.INVISIBLE);
tvTextGold = root.findViewById(R.id.tv_text_gold); tvTextGold = findViewById(R.id.tv_text_gold);
tvRecharge = root.findViewById(R.id.tv_recharge); tvRecharge = findViewById(R.id.tv_recharge);
tvTextGold.setSelected(true);
ivAvatarCharm = findViewById(R.id.iv_avatar_charm);
ivAvatarLevel = findViewById(R.id.iv_avatar_level);
tvNickCharm = findViewById(R.id.tv_nick_charm);
tvNickLevel = findViewById(R.id.tv_nick_level);
llStarWeek = findViewById(R.id.ll_star_week);
ivWeekStarIn = findViewById(R.id.iv_week_star_in);
ivWeekStarIn.setOnClickListener(this);
ivAvatarCharm = root.findViewById(R.id.iv_avatar_charm); giftNumberText = findViewById(R.id.gift_number_text);
ivAvatarLevel = root.findViewById(R.id.iv_avatar_level); giftNumberOptions = findViewById(R.id.iv_gift_number_options);
tvNickCharm = root.findViewById(R.id.tv_nick_charm); avatarImage = findViewById(R.id.avatar);
tvNickLevel = root.findViewById(R.id.tv_nick_level); nickText = findViewById(R.id.nick);
llStarWeek = root.findViewById(R.id.ll_star_week); avatarList = findViewById(R.id.avatar_list);
llWeekIn = root.findViewById(R.id.ll_week_in);
llWeekIn.setOnClickListener(this);
giftNumberText = root.findViewById(R.id.gift_number_text);
giftNumberOptions = root.findViewById(R.id.iv_gift_number_options);
avatarImage = root.findViewById(R.id.avatar);
nickText = root.findViewById(R.id.nick);
avatarList = root.findViewById(R.id.avatar_list);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false); LinearLayoutManager mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
avatarList.setLayoutManager(mLayoutManager); avatarList.setLayoutManager(mLayoutManager);
avatarList.addItemDecoration(new VerticalDecoration(UIUtil.dip2px(context, 10), false, true)); etSendMessage = findViewById(R.id.et_gift_message);
sendContainer = findViewById(R.id.send_container);
ivOpenNoble = root.findViewById(R.id.iv_open_noble);
etSendMessage = root.findViewById(R.id.et_gift_message);
ivOpenNoble.setOnClickListener(this);
sendContainer = root.findViewById(R.id.send_container);
layoutEmpty.setVisibility(View.GONE); layoutEmpty.setVisibility(View.GONE);
ivFirstRecharge = root.findViewById(R.id.iv_first_recharge); ivLuckyBagIntro = findViewById(R.id.iv_lucky_bag_intro);
tvLuckyBagIntro = root.findViewById(R.id.tv_lucky_bag_intro); flLuckyDesc = findViewById(R.id.fl_lucky_desc);
tvGiftValue = root.findViewById(R.id.tv_gift_value); tvGiftValue = findViewById(R.id.tv_gift_value);
ivFirstRecharge.setOnClickListener(this); ivLuckyBagIntro.setOnClickListener(this);
tvLuckyBagIntro.setOnClickListener(this);
if (giftId == 0) { if (giftId == 0) {
// 更新所有礼物 // 更新所有礼物
giftIndicator.setPosition(GiftIndicator.TYPE_NORMAL); showGiftTab();
updateGiftView(giftIndicator.getCurrrentType());
} else { } else {
int indicatorType = GiftIndicator.TYPE_NORMAL; int indicatorType = GiftIndicator.TYPE_NORMAL;
GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftId); GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftId);
@@ -469,11 +476,10 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
break; break;
} }
} }
giftIndicator.setPosition(indicatorType); showGiftTab(indicatorType, giftInfo);
updateGiftView(giftIndicator.getCurrrentType(), giftInfo);
} }
View descLayout = root.findViewById(R.id.desc_layout); View descLayout = findViewById(R.id.desc_layout);
if (isInRoom && (userOnMic || uid == 0)) { if (isInRoom && (userOnMic || uid == 0)) {
avatarList.setVisibility(View.VISIBLE); avatarList.setVisibility(View.VISIBLE);
@@ -510,16 +516,36 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
}); });
compositeDisposable.add(GiftModel.get().requestKnapGiftInfos().subscribe()); compositeDisposable.add(GiftModel.get().requestKnapGiftInfos().subscribe());
if (isInRoom) { initVipPager();
UserModel.get().getCurrentUserInfo() }
.compose(RxHelper.bindContext(context))
.subscribe(userInfo -> {
if (userInfo.isFirstCharge()) {
ivFirstRecharge.setVisibility(View.VISIBLE);
}
});
}
private void initVipPager() {
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo == null) return;
pagerViewVip.setAdapter(new StaticPagerAdapter() {
@Override
public int getCount() {
return (isInRoom && userInfo.isFirstCharge()) ? 2 : 1;
}
@Override
public View getView(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
imageView.setImageResource(position == 0 ? R.drawable.ic_vip_gift_dialog : R.drawable.ic_first_charge_gift_dialog_enter);
imageView.setOnClickListener(v -> {
if (position == 0) {
VipMainActivity.start(context);
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_VIP_ENTRANCE_GIFT_CLICK, "贵族礼物面板入口点击事件");
} else if (position == 1) {
FirstChargeDialog.start(context);
}
});
return imageView;
}
});
pagerViewVip.setPlayDelay(5000);
} }
private void showLoadingAnimation() { private void showLoadingAnimation() {
@@ -590,7 +616,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
currentGiftInfoList = GiftModel.get().getKnapList(); currentGiftInfoList = GiftModel.get().getKnapList();
} else if (position == GiftIndicator.TYPE_NOBLE) { } else if (position == GiftIndicator.TYPE_NOBLE) {
currentGiftInfoList = nobleGiftInfos; currentGiftInfoList = nobleGiftInfos;
ivOpenNoble.setVisibility(View.VISIBLE);
} else if (position == GiftIndicator.TYPE_NORMAL) { } else if (position == GiftIndicator.TYPE_NORMAL) {
currentGiftInfoList = getNormalGiftInfos(); currentGiftInfoList = getNormalGiftInfos();
} else if (position == GiftIndicator.TYPE_LUCKY) { } else if (position == GiftIndicator.TYPE_LUCKY) {
@@ -600,12 +625,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
} else if (position == GiftIndicator.TYPE_DRAW_GIFT) { } else if (position == GiftIndicator.TYPE_DRAW_GIFT) {
currentGiftInfoList = getDrawGiftInfos(); currentGiftInfoList = getDrawGiftInfos();
} }
// 有贵族礼物才显示贵族礼物的tab
if (ListUtils.isListEmpty(nobleGiftInfos)) {
giftIndicator.hidePosition(GiftIndicator.TYPE_NOBLE);
} else {
giftIndicator.showPosition(GiftIndicator.TYPE_NOBLE);
}
//是否背包礼物 //是否背包礼物
final boolean isKnap = (position == GiftIndicator.TYPE_KNAP); final boolean isKnap = (position == GiftIndicator.TYPE_KNAP);
initEasyPop(isKnap); initEasyPop(isKnap);
@@ -630,7 +649,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
if (currentGiftInfo.isSendMsg()) { if (currentGiftInfo.isSendMsg()) {
etSendMessage.setVisibility(View.VISIBLE); etSendMessage.setVisibility(View.VISIBLE);
} }
pagerList = beanTransformVm(context, currentGiftInfoList, isKnap, position == GiftIndicator.TYPE_WEEK ? 4 : 8, selectGiftInfo); pagerList = beanTransformVm(context, currentGiftInfoList, isKnap, 8, selectGiftInfo);
setGridViewData(pagerList); setGridViewData(pagerList);
if (isKnap) { if (isKnap) {
tvGiftValue.setVisibility(View.VISIBLE); tvGiftValue.setVisibility(View.VISIBLE);
@@ -644,61 +663,46 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
updateWeekStarDesc(); updateWeekStarDesc();
isShowDrawGiftModel = false; isShowDrawGiftModel = false;
updateDrawGift(); updateDrawGift();
giftIndicator.post(() -> {
if (position < GiftIndicator.TYPE_WEEK) {
hsvTabs.fullScroll(View.FOCUS_LEFT);
} else {
hsvTabs.fullScroll(View.FOCUS_RIGHT);
}
});
} }
private void updateLuckyBagIntro() { private void updateLuckyBagIntro() {
if (currentGiftInfo == null || if (currentGiftInfo == null || currentGiftInfo.getGiftType() != GiftType.GIFT_TYPE_LUCKY) {
(TextUtils.isEmpty(currentGiftInfo.getGiftExplainUrl()) && currentGiftInfo.getGiftType() != GiftType.GIFT_TYPE_LUCKY)) { flLuckyDesc.setVisibility(View.GONE);
tvLuckyBagIntro.setVisibility(View.GONE);
} else { } else {
tvLuckyBagIntro.setVisibility(View.VISIBLE); flLuckyDesc.setVisibility(View.VISIBLE);
} }
} }
private void updateWeekStarDesc() { private void updateWeekStarDesc() {
if (giftIndicator.getCurrrentType() == GiftIndicator.TYPE_WEEK) { if (giftIndicator.getCurrrentType() == GiftIndicator.TYPE_WEEK) {
llWeekIn.setVisibility(View.VISIBLE);
llStarWeek.setVisibility(View.VISIBLE); llStarWeek.setVisibility(View.VISIBLE);
} else { } else {
llWeekIn.setVisibility(View.GONE);
llStarWeek.setVisibility(View.GONE); llStarWeek.setVisibility(View.GONE);
return; return;
} }
if (currentGiftInfo == null) { SimpleUserInfo firstCharmRankUser = currentGiftInfo == null ? null : currentGiftInfo.getFirstCharmRankUser();
llStarWeek.setVisibility(View.INVISIBLE);
return;
}
SimpleUserInfo firstCharmRankUser = currentGiftInfo.getFirstCharmRankUser();
if (firstCharmRankUser != null) { if (firstCharmRankUser != null) {
ImageLoadUtils.loadImage(getContext(), firstCharmRankUser.getAvatar(), ivAvatarCharm); ImageLoadUtils.loadImage(getContext(), firstCharmRankUser.getAvatar(), ivAvatarCharm);
ivAvatarCharm.setOnClickListener(v -> { ivAvatarCharm.setOnClickListener(v -> {
if (firstCharmRankUser.getUid() == 0) return; if (firstCharmRankUser.getUid() == 0) return;
EventBus.getDefault().post(new ShowUserInfoDialogEvent(String.valueOf(firstCharmRankUser.getUid()))); EventBus.getDefault().post(new ShowUserInfoDialogEvent(String.valueOf(firstCharmRankUser.getUid())));
}); });
tvNickCharm.setText(StringExtensionKt.subAndReplaceDot(firstCharmRankUser.getNick(), 10)); tvNickCharm.setText(StringExtensionKt.subAndReplaceDot(firstCharmRankUser.getNick(), 7));
} else { } else {
ivAvatarCharm.setOnClickListener(null); ivAvatarCharm.setOnClickListener(null);
ivAvatarCharm.setImageResource(R.drawable.default_avatar); ivAvatarCharm.setImageResource(R.drawable.default_avatar);
tvNickCharm.setText("虚位以待"); tvNickCharm.setText("虚位以待");
} }
SimpleUserInfo firstLevelRankUser = currentGiftInfo.getFirstLevelRankUser(); SimpleUserInfo firstLevelRankUser = currentGiftInfo == null ? null : currentGiftInfo.getFirstLevelRankUser();
if (firstLevelRankUser != null) { if (firstLevelRankUser != null) {
ImageLoadUtils.loadImage(getContext(), firstLevelRankUser.getAvatar(), ivAvatarLevel); ImageLoadUtils.loadImage(getContext(), firstLevelRankUser.getAvatar(), ivAvatarLevel);
ivAvatarLevel.setOnClickListener(v -> { ivAvatarLevel.setOnClickListener(v -> {
if (firstLevelRankUser.getUid() == 0) return; if (firstLevelRankUser.getUid() == 0) return;
EventBus.getDefault().post(new ShowUserInfoDialogEvent(String.valueOf(firstLevelRankUser.getUid()))); EventBus.getDefault().post(new ShowUserInfoDialogEvent(String.valueOf(firstLevelRankUser.getUid())));
}); });
tvNickLevel.setText(StringExtensionKt.subAndReplaceDot(firstLevelRankUser.getNick(), 10)); tvNickLevel.setText(StringExtensionKt.subAndReplaceDot(firstLevelRankUser.getNick(), 7));
} else { } else {
ivAvatarLevel.setOnClickListener(null); ivAvatarLevel.setOnClickListener(null);
ivAvatarLevel.setImageResource(R.drawable.default_avatar); ivAvatarLevel.setImageResource(R.drawable.default_avatar);
@@ -741,6 +745,8 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
drawGiftHelper.setMaxDrawSize(MAX_DRAW_SIZE); drawGiftHelper.setMaxDrawSize(MAX_DRAW_SIZE);
rlGifts.setVisibility(View.GONE); rlGifts.setVisibility(View.GONE);
llTabs.setVisibility(View.GONE); llTabs.setVisibility(View.GONE);
llTabType.setVisibility(View.GONE);
lineTabType.setVisibility(View.GONE);
giftNumLayout.setVisibility(View.GONE); giftNumLayout.setVisibility(View.GONE);
llDrawGift.setVisibility(View.VISIBLE); llDrawGift.setVisibility(View.VISIBLE);
drawGiftHelper.setDrawEnable(true); drawGiftHelper.setDrawEnable(true);
@@ -758,6 +764,8 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
} }
rlGifts.setVisibility(View.VISIBLE); rlGifts.setVisibility(View.VISIBLE);
llTabs.setVisibility(View.VISIBLE); llTabs.setVisibility(View.VISIBLE);
llTabType.setVisibility(View.VISIBLE);
lineTabType.setVisibility(View.VISIBLE);
llDrawGift.setVisibility(View.GONE); llDrawGift.setVisibility(View.GONE);
drawGiftHelper.setDrawEnable(false); drawGiftHelper.setDrawEnable(false);
drawGiftHelper.resetDrawGiftView(); drawGiftHelper.resetDrawGiftView();
@@ -804,8 +812,8 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
diamond = String.valueOf((int) totalValue); diamond = String.valueOf((int) totalValue);
} }
SpannableBuilder text = new SpannableBuilder() SpannableBuilder text = new SpannableBuilder()
.append("总价值: ", new ForegroundColorSpan(Color.parseColor("#7A797A"))) .append("总价值: ", new ForegroundColorSpan(Color.parseColor("#BABBCD")))
.append(diamond + "钻石", new ForegroundColorSpan(Color.WHITE)); .append(diamond + "", new ForegroundColorSpan(Color.parseColor("#5FCCE4")));
tvGiftValue.setText(text.build()); tvGiftValue.setText(text.build());
} }
@@ -839,11 +847,9 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
layoutLoadFiled.setVisibility(View.GONE); layoutLoadFiled.setVisibility(View.GONE);
layoutEmpty.setVisibility(View.GONE); layoutEmpty.setVisibility(View.GONE);
etSendMessage.setVisibility(View.GONE); etSendMessage.setVisibility(View.GONE);
tvLuckyBagIntro.setVisibility(View.GONE);
tvGiftValue.setVisibility(View.GONE); tvGiftValue.setVisibility(View.GONE);
ivOpenNoble.setVisibility(View.GONE);
llWeekIn.setVisibility(View.GONE);
llStarWeek.setVisibility(View.GONE); llStarWeek.setVisibility(View.GONE);
flLuckyDesc.setVisibility(View.GONE);
gridView.setVisibility(View.VISIBLE); gridView.setVisibility(View.VISIBLE);
indicatorView.setVisibility(View.VISIBLE); indicatorView.setVisibility(View.VISIBLE);
@@ -1034,7 +1040,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.tv_recharge: case R.id.tv_recharge:
if (itemType == ITEM_TYPE_GOLD) { if (itemType == ITEM_TYPE_GOLD) {
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_GIFT_PANEL_TO_RECHARGE, "礼物面板_去充值:" + GIFT_DIALOG_FROM); StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_GIFT_PANEL_TO_RECHARGE, "礼物面板_去充值:" + GIFT_DIALOG_FROM);
@@ -1042,7 +1047,6 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
} else if (itemType == ITEM_TYPE_RADISH) { } else if (itemType == ITEM_TYPE_RADISH) {
TaskCenterActivity.start(context, TaskCenterActivity.FromPage.GIFT); TaskCenterActivity.start(context, TaskCenterActivity.FromPage.GIFT);
} }
dismiss(); dismiss();
break; break;
//送礼物 //送礼物
@@ -1211,29 +1215,15 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
case R.id.gift_number_layout: case R.id.gift_number_layout:
showEasyPopup(); showEasyPopup();
break; break;
case R.id.iv_open_noble: case R.id.iv_lucky_bag_intro:
VipMainActivity.start(context);
StatisticManager.Instance()
.onEvent(StatisticsProtocol.EVENT_VIP_ENTRANCE_GIFT_CLICK, "贵族礼物面板入口点击事件");
break;
case R.id.iv_first_recharge:
FirstChargeDialog.start(context);
break;
case R.id.tv_lucky_bag_intro:
if (currentGiftInfo == null) break; if (currentGiftInfo == null) break;
if (currentGiftInfo.getGiftType() == GiftType.GIFT_TYPE_LUCKY) { DialogWebViewActivity.start(context, UriProvider.getLuckyGiftRule(currentGiftInfo.getGiftId()), true);
DialogWebViewActivity.start(context, UriProvider.getLuckyGiftRule(currentGiftInfo.getGiftId()), true);
} else {
DialogWebViewActivity.start(context, currentGiftInfo.getGiftExplainUrl(), true);
}
break; break;
case R.id.tv_reload: case R.id.tv_reload:
reloadData(true); reloadData(true);
break; break;
case R.id.ll_week_in: case R.id.iv_week_star_in:
DialogWebViewActivity.start(context, UriProvider.getWeekStarUrl(), true); DialogWebViewActivity.start(context, UriProvider.getWeekStarUrl(), true);
break; break;
case R.id.iv_draw_gift_close: case R.id.iv_draw_gift_close:
@@ -1250,11 +1240,51 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
case R.id.iv_draw_gift_remove_all: case R.id.iv_draw_gift_remove_all:
clearDrawGift(); clearDrawGift();
break; break;
case R.id.tv_tab_send_gift:
showGiftTab();
break;
case R.id.tv_tab_interaction:
showInteractionTab();
break;
default: default:
break; break;
} }
} }
private void showGiftTab() {
showGiftTab(GiftIndicator.TYPE_NORMAL, null);
}
private void showGiftTab(int position, @Nullable GiftInfo selectGiftInfo) {
if (tvTabSendGift.isSelected() && position == giftIndicator.getCurrrentType()) return;
tvTabSendGift.setSelected(true);
tvTabInteraction.setSelected(false);
giftIndicator.hidePosition(GiftIndicator.TYPE_DRAW_GIFT);
giftIndicator.showPosition(GiftIndicator.TYPE_LUCKY);
giftIndicator.showPosition(GiftIndicator.TYPE_NOBLE);
giftIndicator.showPosition(GiftIndicator.TYPE_WEEK);
giftIndicator.showPosition(GiftIndicator.TYPE_NORMAL);
giftIndicator.setPosition(position);
updateGiftView(giftIndicator.getCurrrentType(), selectGiftInfo);
}
private void showInteractionTab() {
if (tvTabInteraction.isSelected()) return;
tvTabSendGift.setSelected(false);
tvTabInteraction.setSelected(true);
giftIndicator.showPosition(GiftIndicator.TYPE_DRAW_GIFT);
giftIndicator.hidePosition(GiftIndicator.TYPE_LUCKY);
giftIndicator.hidePosition(GiftIndicator.TYPE_NOBLE);
giftIndicator.hidePosition(GiftIndicator.TYPE_WEEK);
giftIndicator.hidePosition(GiftIndicator.TYPE_NORMAL);
giftIndicator.setPosition(GiftIndicator.TYPE_DRAW_GIFT);
updateGiftView(giftIndicator.getCurrrentType());
}
private void onSendGiftSuccess(GiftInfo giftInfo) { private void onSendGiftSuccess(GiftInfo giftInfo) {
if (sendGiftButton == null) return; if (sendGiftButton == null) return;
sendGiftButton.setText("赠送"); sendGiftButton.setText("赠送");
@@ -1371,9 +1401,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onFirstRechargeEvent(FirstChargeEvent event) { public void onFirstRechargeEvent(FirstChargeEvent event) {
if (ivFirstRecharge != null) { initVipPager();
ivFirstRecharge.setVisibility(View.GONE);
}
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)

View File

@@ -1,7 +1,9 @@
package com.mango.moshen.ui.widget.magicindicator; package com.mango.moshen.ui.widget.magicindicator;
import android.content.Context; import android.content.Context;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -28,40 +30,49 @@ import lombok.Getter;
*/ */
public class GiftIndicator extends LinearLayout { public class GiftIndicator extends LinearLayout {
/**普通礼物*/ /**
* 普通礼物
*/
public static final int TYPE_NORMAL = 0; public static final int TYPE_NORMAL = 0;
/**星球礼物*/ /**
* 星球礼物
*/
public static final int TYPE_LUCKY = 1; public static final int TYPE_LUCKY = 1;
/**贵族礼物*/ /**
* 贵族礼物
*/
public static final int TYPE_NOBLE = 2; public static final int TYPE_NOBLE = 2;
/**周星礼物*/ /**
* 周星礼物
*/
public static final int TYPE_WEEK = 3; public static final int TYPE_WEEK = 3;
/**涂鸦礼物*/ /**
* 涂鸦礼物
*/
public static final int TYPE_DRAW_GIFT = 4; public static final int TYPE_DRAW_GIFT = 4;
/**背包礼物*/ /**
* 背包礼物
*/
public static final int TYPE_KNAP = 5; public static final int TYPE_KNAP = 5;
private Map<String, String> map = new HashMap<>(); private Map<String, String> map = new HashMap<>();
private List<GiftTab> tabList = new ArrayList<>();
@Getter
private int currrentType = TYPE_NORMAL;
private int mFalseColor;
private int mTrueColor;
public GiftIndicator(Context context, @Nullable AttributeSet attrs) { public GiftIndicator(Context context, @Nullable AttributeSet attrs) {
super(context, attrs); super(context, attrs);
setOrientation(LinearLayout.HORIZONTAL); setOrientation(LinearLayout.HORIZONTAL);
} }
private List<GiftTab> tabList = new ArrayList<>();
@Getter
private int currrentType = TYPE_NORMAL;
private int mFalseColor;
private int mTrueColor;
public void initTab(List<GiftTab> list, int falseColor, int trueColor) { public void initTab(List<GiftTab> list, int falseColor, int trueColor) {
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
GiftTab tab = list.get(i); GiftTab tab = list.get(i);
@@ -72,6 +83,9 @@ public class GiftIndicator extends LinearLayout {
TextView tvTitle = view.findViewById(R.id.tv_title); TextView tvTitle = view.findViewById(R.id.tv_title);
tvTitle.setText(tab.getUnSelectedTitle()); tvTitle.setText(tab.getUnSelectedTitle());
} }
LinearLayout.LayoutParams params = new LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT);
params.weight = 1f;
addView(new View(getContext()), list.size() - 1, params);
tabList = list; tabList = list;
mFalseColor = falseColor; mFalseColor = falseColor;
mTrueColor = trueColor; mTrueColor = trueColor;

View File

@@ -124,7 +124,6 @@ public class RollPagerView extends RelativeLayout implements OnPageChangeListene
mViewPager.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); mViewPager.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
addView(mViewPager); addView(mViewPager);
type.recycle(); type.recycle();
initHint(new ColorPointHintView(getContext(), Color.parseColor("#E3AC42"), Color.parseColor("#88ffffff")));
//手势处理 //手势处理
mGestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() { mGestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
@Override @Override

View File

@@ -13,58 +13,57 @@ import java.util.ArrayList;
/** /**
* 静态存储的Adapter。概念参照{@link FragmentStatePagerAdapter} * 静态存储的Adapter。概念参照{@link FragmentStatePagerAdapter}
* view添加进去就不管了View长在内存不再。 * view添加进去就不管了View长在内存不再。
* <p>Subclasses only need to implement {@link #getView(ViewGroup,int)} * <p>Subclasses only need to implement {@link #getView(ViewGroup, int)}
* and {@link #getCount()} to have a working adapter. * and {@link #getCount()} to have a working adapter.
*
*/ */
public abstract class StaticPagerAdapter extends PagerAdapter { public abstract class StaticPagerAdapter extends PagerAdapter {
private ArrayList<View> mViewList = new ArrayList<>(); private ArrayList<View> mViewList = new ArrayList<>();
@Override @Override
public boolean isViewFromObject(View arg0, Object arg1) { public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1; return arg0 == arg1;
} }
@Override @Override
public void destroyItem(ViewGroup container, int position, Object object) { public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object); container.removeView((View) object);
} }
@Override @Override
public void notifyDataSetChanged() { public void notifyDataSetChanged() {
mViewList.clear(); mViewList.clear();
super.notifyDataSetChanged(); super.notifyDataSetChanged();
} }
@Override @Override
public int getItemPosition(Object object) { public int getItemPosition(Object object) {
return POSITION_NONE; return POSITION_NONE;
} }
@Override @Override
public Object instantiateItem(ViewGroup container, int position) { public Object instantiateItem(ViewGroup container, int position) {
View itemView = findViewByPosition(container,position); View itemView = findViewByPosition(container, position);
container.addView(itemView); container.addView(itemView);
onBind(itemView,position); onBind(itemView, position);
return itemView; return itemView;
} }
private View findViewByPosition(ViewGroup container,int position){ private View findViewByPosition(ViewGroup container, int position) {
for (View view : mViewList) { for (View view : mViewList) {
if (((int)view.getTag()) == position&&view.getParent()==null){ if (((int) view.getTag()) == position && view.getParent() == null) {
return view; return view;
} }
} }
View view = getView(container,position); View view = getView(container, position);
view.setTag(position); view.setTag(position);
mViewList.add(view); mViewList.add(view);
return view; return view;
} }
public void onBind(View view,int position){ public void onBind(View view, int position) {
} }
public abstract View getView(ViewGroup container, int position); public abstract View getView(ViewGroup container, int position);
} }

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_selected="true" />
<item android:color="#8A8CAB" />
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -2,8 +2,12 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true"> <item android:state_enabled="true">
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<solid android:color="@color/appColor" /> <gradient android:angle="180"
<corners android:radius="50dp" /> android:endColor="#5BC8F8"
android:startColor="#66D9D9"
android:type="linear"
android:useLevel="true" />
<corners android:bottomLeftRadius="100dp" android:bottomRightRadius="100dp" android:topLeftRadius="100dp" android:topRightRadius="100dp" />
</shape> </shape>
</item> </item>
<item android:state_enabled="false"> <item android:state_enabled="false">

View File

@@ -2,7 +2,6 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke <stroke
android:width="1dp" android:width="1dp"
android:color="@color/appColor" /> android:color="@color/color_5FCCE4" />
<solid android:color="#1A0B0B0D" /> <corners android:radius="@dimen/dp_4" />
<corners android:radius="@dimen/dp_6" />
</shape> </shape>

View File

@@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke <stroke
android:width="1dp" android:width="1dp"
android:color="@color/appColor" android:color="@color/color_5FCCE4"
/> />
<solid <solid
android:color="@color/transparent" android:color="@color/transparent"

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="100dp" />
<solid android:color="@color/white_tran_20" />
</shape>

File diff suppressed because it is too large Load Diff

View File

@@ -5,8 +5,8 @@
android:layout_height="26dp" android:layout_height="26dp"
android:orientation="vertical" android:orientation="vertical"
android:gravity="center" android:gravity="center"
android:paddingLeft="@dimen/dp_6" android:paddingLeft="@dimen/dp_7"
android:paddingRight="@dimen/dp_6"> android:paddingRight="@dimen/dp_7">
<TextView <TextView
android:id="@+id/tv_title" android:id="@+id/tv_title"
@@ -14,7 +14,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
tools:text="全部礼物" tools:text="全部礼物"
android:textSize="@dimen/dp_15" android:textSize="@dimen/dp_13"
tools:ignore="SpUsage" /> tools:ignore="SpUsage" />
</LinearLayout> </LinearLayout>

View File

@@ -9,13 +9,14 @@
type="com.mango.moshen.ui.gift.dialog.GiftInfoVm" /> type="com.mango.moshen.ui.gift.dialog.GiftInfoVm" />
<import type="android.view.View" /> <import type="android.view.View" />
<import type="android.text.TextUtils" /> <import type="android.text.TextUtils" />
</data> </data>
<RelativeLayout <RelativeLayout
android:id="@+id/gift_layout" android:id="@+id/gift_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="108dp" android:layout_height="98dp"
android:gravity="center" android:gravity="center"
tools:layout_width="100dp"> tools:layout_width="100dp">
@@ -44,7 +45,7 @@
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:text="@{item.data().giftName}" android:text="@{item.data().giftName}"
android:textColor="@{item.isSelect ? @color/color_ffb606 : @color/white}" android:textColor="@{item.isSelect ? @color/color_5FCCE4 : @color/white}"
android:textSize="@dimen/dp_10" android:textSize="@dimen/dp_10"
tools:ignore="SpUsage" tools:ignore="SpUsage"
tools:text="123" /> tools:text="123" />
@@ -56,9 +57,12 @@
android:layout_below="@id/gift_name" android:layout_below="@id/gift_name"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:drawableStart="@{item.isSelect?item.radishDrawableSelected:item.radishDrawable}" android:drawableStart="@{item.isSelect?item.radishDrawableSelected:item.radishDrawable}"
android:drawableEnd="@drawable/ic_gift_dialog_diamond"
android:drawablePadding="2dp" android:drawablePadding="2dp"
android:gravity="center"
android:includeFontPadding="false"
android:text="@{item.goldText}" android:text="@{item.goldText}"
android:textColor="@{item.isSelect ? @color/color_ffb606_transparent_65 : @color/white_transparent_50}" android:textColor="@{item.isSelect ? @color/color_5FCCE4 : @color/white}"
android:textSize="@dimen/dp_10" android:textSize="@dimen/dp_10"
tools:ignore="SpUsage" tools:ignore="SpUsage"
tools:text="123" /> tools:text="123" />
@@ -68,8 +72,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:gravity="center"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:gravity="center"
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView

View File

@@ -3,73 +3,51 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/avatar_container" android:id="@+id/avatar_container"
android:layout_width="@dimen/dp_38" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_38"> android:layout_height="@dimen/dp_35"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="5dp">
<com.mango.moshen.common.widget.CircleImageView <com.mango.moshen.common.widget.CircleImageView
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="match_parent" android:layout_width="30dp"
android:layout_height="match_parent" android:layout_height="30dp"
android:layout_centerHorizontal="true"
app:cborder_width="1dp" /> app:cborder_width="1dp" />
<ImageView <ImageView
android:id="@+id/iv_all" android:id="@+id/iv_all"
android:layout_width="match_parent" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="26dp"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:src="@drawable/icon_gift_all_mic_ture" android:src="@drawable/icon_gift_all_mic_ture"
android:visibility="gone" /> android:visibility="gone" />
<com.coorchice.library.SuperTextView <com.coorchice.library.SuperTextView
android:id="@+id/avatar_cover" android:id="@+id/avatar_cover"
android:layout_width="match_parent" android:layout_width="28dp"
android:layout_height="match_parent" android:layout_height="28dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="1dp"
app:corner="@dimen/dp_50" app:corner="@dimen/dp_50"
app:solid="@color/black_transparent_50" /> app:solid="@color/black_transparent_20" />
<TextView <com.coorchice.library.SuperTextView
android:id="@+id/all_mic_state" android:id="@+id/mic_number"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="全麦"
android:textSize="@dimen/sp_10" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_11"
android:layout_alignParentEnd="true" android:layout_alignParentBottom="true"
android:layout_alignParentBottom="true"> android:layout_centerHorizontal="true"
android:gravity="center"
<com.coorchice.library.SuperTextView android:includeFontPadding="false"
android:id="@+id/mic_number" android:minWidth="@dimen/dp_11"
android:layout_width="wrap_content" android:paddingStart="3dp"
android:layout_height="@dimen/dp_11" android:paddingEnd="3dp"
android:gravity="center" android:textColor="#161958"
android:includeFontPadding="false" android:textSize="8sp"
android:minWidth="@dimen/dp_11" app:corner="@dimen/dp_50"
android:paddingStart="3dp" app:solid="#5FCCE4"
android:paddingEnd="3dp" tools:text="VIP" />
android:textColor="@color/white"
android:textSize="8sp"
app:corner="@dimen/dp_50"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:solid="@color/appColor"
tools:text="VIP" />
<com.coorchice.library.SuperTextView
android:id="@+id/mic_number_cover"
android:layout_width="0dp"
android:layout_height="@dimen/dp_11"
android:layout_alignParentEnd="true"
app:corner="@dimen/dp_50"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:solid="@color/black_transparent_50" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>

View File

@@ -603,5 +603,6 @@
<color name="color_c6c6e9">#c6c6e9</color> <color name="color_c6c6e9">#c6c6e9</color>
<color name="color_FD85C9">#FD85C9</color> <color name="color_FD85C9">#FD85C9</color>
<color name="color_ffbc51">#FFFFBC51</color> <color name="color_ffbc51">#FFFFBC51</color>
<color name="color_5FCCE4">#5FCCE4</color>
<color name="color_161958">#161958</color>
</resources> </resources>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB