userHomePage add cp.

This commit is contained in:
2025-11-20 19:21:20 +08:00
parent 117ee41ff2
commit 355141a2a8
8 changed files with 494 additions and 159 deletions

View File

@@ -1,13 +1,20 @@
package com.xscm.modulemain.activity.user.fragment;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
@@ -16,6 +23,8 @@ import androidx.recyclerview.widget.GridLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.google.android.flexbox.FlexboxLayout;
import com.xscm.modulemain.Application;
import com.xscm.modulemain.R;
import com.xscm.modulemain.databinding.FragmentUserHompageBinding;
import com.tencent.imsdk.v2.V2TIMConversation;
@@ -46,8 +55,6 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
private List<MyBagBean> list;
private String userId;
private UserInfo userInfo;
private BaseQuickAdapter<UserTagBean, BaseViewHolder> adapter;
private List<UserTagBean> userTagBeans = new ArrayList<>();
private int type;
@Override
@@ -107,7 +114,7 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
list.add(new MyBagBean("动态", "1"));
list.add(new MyBagBean("礼物墙", "2"));
list.add(new MyBagBean("我的相册", "3"));
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), list, userInfo.getUser_id()+""));
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), list, userInfo.getUser_id() + ""));
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
if (type == 1) {
mBinding.slidingTabLayout.setCurrentTab(1);
@@ -115,11 +122,11 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
mBinding.slidingTabLayout.setCurrentTab(0);
}
mBinding.headerInfo.rivUserHead.setData(userInfo.getAvatar(), "", userInfo.getNobility_image());
String sex = userInfo.getSex()==1?"":"";
mBinding.headerInfo.tvUserId.setText(sex+" | ID:"+userInfo.getUser_code());
String sex = userInfo.getSex() == 1 ? "" : "";
mBinding.headerInfo.tvUserId.setText(sex + "|" + userInfo.getAge() + "" + "ID:" + userInfo.getUser_code());
mBinding.headerInfo.tvNickName.setText(userInfo.getNickname());
if (!userInfo.getNickname_color().isEmpty()){
if (!userInfo.getNickname_color().isEmpty()) {
mBinding.headerInfo.tvNickName.setStartColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.headerInfo.tvNickName.setShineColor(Color.parseColor(userInfo.getNickname_color()));
mBinding.headerInfo.tvNickName.setEndColor(Color.parseColor(userInfo.getNickname_color()));
@@ -128,56 +135,59 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
}
// mBinding.headerInfo.tvNickName.setTextColor( (userInfo.getNickname_color()!=null && !userInfo.getNickname_color().equals(""))?Color.parseColor(userInfo.getNickname_color()):Color.parseColor("#333333"));
// mBinding.headerInfo.tvUserId.setText(userInfo.getUser_code());
mBinding.headerInfo.tvAge.setText(userInfo.getAge() + "");
// mBinding.headerInfo.tvAge.setText(userInfo.getAge() + "岁");
mBinding.headerInfo.tvJj.setText(userInfo.getProfile());
if (userInfo.getIs_use_code()==1){
if (userInfo.getIs_use_code() == 1) {
mBinding.headerInfo.imBeautiful.setVisibility(View.VISIBLE);
}else {
} else {
mBinding.headerInfo.imBeautiful.setVisibility(View.GONE);
}
LinearLayout llContainer = mBinding.headerInfo.llImageContainer;
llContainer.removeAllViews(); // 清空旧的 ImageView
if (!userInfo.getIcon().isEmpty()){
mBinding.headerInfo.flexEntry.setVisibility(VISIBLE);
for (String url : userInfo.getIcon()) {
if (url.contains("http")) {
ImageView imageView1 = new ImageView(Application.getInstance());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
Application.getInstance().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_20)
);
params.setMargins(0, 0,Application.getInstance().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_10), 0); // 右边距
imageView1.setLayoutParams(params);
imageView1.setScaleType(ImageView.ScaleType.FIT_START);
List<String> images = userInfo.getIcon(); // 获取图片列表
for (String url : images) {
if (url.contains("http")) {
ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_57),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView);
llContainer.addView(imageView);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView1,params);
mBinding.headerInfo.flexEntry.addView(imageView1);
}
}
}else {
mBinding.headerInfo.flexEntry.setVisibility(GONE);
}
mBinding.headerInfo.recycleView2.setLayoutManager(new GridLayoutManager(getContext(), 3));
adapter = new BaseQuickAdapter<UserTagBean, BaseViewHolder>(R.layout.item_tag, userTagBeans) {
@Override
protected void convert(BaseViewHolder helper, UserTagBean item) {
helper.setText(R.id.tv, item.getTag_name());
}
};
mBinding.headerInfo.recycleView2.setAdapter(adapter);
if (userInfo != null) {
if (userInfo.getTag_list() != null && !userInfo.getTag_list().isEmpty()) {
adapter.setNewData(userInfo.getTag_list());
for (UserTagBean tagBean : userInfo.getTag_list()) {
TextView textView = new TextView(Application.getInstance());
textView.setBackground(getResources().getDrawable(R.drawable.shape_15));
textView.setTextSize(12);
textView.setPadding(30, 10, 30, 10);
textView.setText(tagBean.getTag_name());
textView.setTextColor(Color.parseColor("#FF3ABC6D"));
textView.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#1A3ABC6D")));
FlexboxLayout.LayoutParams params = new FlexboxLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
);
params.setMargins(0, 15, 15, 0);
textView.setLayoutParams( params);
mBinding.headerInfo.flexText.addView(textView);
}
}
}
@@ -185,19 +195,91 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
mBinding.headerInfo.tvGz.setOnClickListener(this::onClick);
mBinding.headerInfo.tvGsSx.setOnClickListener(this::onClick);
refreshView();
try {
if (userInfo.getGuild()==null || userInfo.getGuild().isEmpty()){
mBinding.headerInfo.tvGH.setText("所属公会:无");
}else {
mBinding.headerInfo.tvGH.setText("所属公会:"+userInfo.getGuild());
}
} catch (Exception ignored) {
mBinding.headerInfo.tvGH.setText("所属公会:无");
if (userInfo.getGuild() == null || userInfo.getGuild().isEmpty()) {
mBinding.headerInfo.tvGH.setVisibility(View.GONE);
} else {
mBinding.headerInfo.tvGH.setVisibility(View.VISIBLE);
mBinding.headerInfo.tvGH.setText(userInfo.getGuild());
}
showCp();
}
private void showCp() {
if (userInfo.getCp_info() != null) {
mBinding.headerInfo.llCp.setVisibility(VISIBLE);
mBinding.headerInfo.rlCpAnim.setVisibility(VISIBLE);
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info1.avatar, mBinding.headerInfo.userNav1);
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info2.avatar, mBinding.headerInfo.userNav2);
mBinding.headerInfo.tvNickname1.setText(userInfo.getCp_info().user_info1.nickname);
mBinding.headerInfo.tvNickname2.setText(userInfo.getCp_info().user_info2.nickname);
mBinding.headerInfo.tvCpLv.setText("LV" + userInfo.getCp_info().level + " " + userInfo.getCp_info().name);
long xd = Long.parseLong(userInfo.getCp_info().exp);
if (xd >= 10000) {
mBinding.headerInfo.tvCpNum.setText(String.format("%.2fw", xd / 10000.0f));
} else {
mBinding.headerInfo.tvCpNum.setText(String.valueOf(xd));
}
mBinding.headerInfo.cpAnim.setSource(userInfo.getCp_info().pendant, 1);
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info1.avatar, mBinding.headerInfo.ivCp1);
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info2.avatar, mBinding.headerInfo.ivCp2);
ConstraintLayout.LayoutParams params = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.WRAP_CONTENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT);
//挂件上的头像位置0-上1-右上2-右3-右下4-下5-左下6-左7-左上'
switch (Integer.parseInt(userInfo.getCp_info().direction)) {
case 0:
params.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
params.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
params.bottomToTop = mBinding.headerInfo.topGuideline.getId();
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.HORIZONTAL);
break;
case 1:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.VERTICAL);
params.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
params.topToTop = ConstraintLayout.LayoutParams.PARENT_ID;
break;
case 2:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.VERTICAL);
params.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
params.bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID;
params.topToTop = ConstraintLayout.LayoutParams.PARENT_ID;
break;
case 3:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.VERTICAL);
params.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
params.bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID;
break;
case 4:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.HORIZONTAL);
params.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
params.endToEnd = ConstraintLayout.LayoutParams.PARENT_ID;
params.topToBottom = mBinding.headerInfo.bottomGuideline.getId();
params.bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID;
break;
case 5:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.VERTICAL);
params.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
params.bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID;
break;
case 6:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.VERTICAL);
params.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
params.bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID;
params.topToTop = ConstraintLayout.LayoutParams.PARENT_ID;
break;
case 7:
mBinding.headerInfo.llCpAnimAvatar.setOrientation(LinearLayout.VERTICAL);
params.startToStart = ConstraintLayout.LayoutParams.PARENT_ID;
params.topToTop = ConstraintLayout.LayoutParams.PARENT_ID;
break;
}
mBinding.headerInfo.llCpAnimAvatar.setLayoutParams(params);
}
}
private void refreshView() {
if (SpUtil.getUserId() == userInfo.getUser_id()) {
mBinding.headerInfo.tvGsSx.setVisibility(View.GONE);
@@ -207,19 +289,18 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
mBinding.headerInfo.tvGz.setVisibility(View.VISIBLE);
if (userInfo.getIs_follow() == 1) {
// mBinding.headerInfo.tvGz.setBackground(getResources().getDrawable(com.xscm.moduleutil.R.mipmap.yigz));
ThemeableDrawableUtils.setThemeableRoundedBackground( mBinding.headerInfo.tvGz, ContextCompat.getColor(getContext(), com.xscm.moduleutil.R.color.EFF2F8), 34);
mBinding.headerInfo.tvGz.setTextColor(Color.BLACK);
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.headerInfo.tvGz, ContextCompat.getColor(getContext(), com.xscm.moduleutil.R.color.EFF2F8), 34);
mBinding.headerInfo.tvGz.setText("已关注");
mBinding.headerInfo.tvGz.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#ff999999")));
} else {
// mBinding.headerInfo.tvGz.setBackground(getResources().getDrawable(com.xscm.moduleutil.R.mipmap.gz));
ThemeableDrawableUtils.setThemeableRoundedBackground( mBinding.headerInfo.tvGz, ColorManager.getInstance().getPrimaryColorInt(), 34);
mBinding.headerInfo.tvGz.setTextColor(ColorManager.getInstance().getButtonColorInt());
mBinding.headerInfo.tvGz.setText("关注");
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.headerInfo.tvGz, ColorManager.getInstance().getPrimaryColorInt(), 34);
mBinding.headerInfo.tvGz.setText("+ 关注");
mBinding.headerInfo.tvGz.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#ff52FF96")));
}
if (userInfo.getRoom_id() == null || userInfo.getRoom_id().equals("0")) {
mBinding.headerInfo.tvGsSx.setBackground(getResources().getDrawable(com.xscm.moduleutil.R.mipmap.six));
} else {
@@ -239,7 +320,7 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_C2C);
startActivity(intent);
} else {
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), userInfo.getRoom_id(),"",null);
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), userInfo.getRoom_id(), "", null);
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", userInfo.getRoom_id()).navigation();
}

View File

@@ -254,10 +254,10 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
} else if (id == R.id.more_button) {
RelationshipFragment.show(user_id, guanType, getParentFragmentManager());
dismiss();
} else if (id == R.id.textView1) {
dianj(1);
} else if (id == R.id.textView2) {
dianj(2);
// } else if (id == R.id.textView1) {
// dianj(1);
// } else if (id == R.id.textView2) {
// dianj(2);
} else if (id == R.id.im_qml) {
MvpPre.clearUserCharm(room_id, user_id);
} else if (id == R.id.im_gs) {
@@ -475,9 +475,10 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
if (userInfo.getGuild().isEmpty()) {
mBinding.tvGh.setText("所属公会:无");
} else {
if (userInfo.getUser_id() != SpUtil.getUserId()) {
if (userInfo.getUser_id() != SpUtil.getUserId() && !userInfo.getGuild().equals(SpUtil.getUserInfo().getGuild())){
mBinding.tvJoinGuild.setVisibility(VISIBLE);
}
mBinding.tvGh.setText("所属公会:" + userInfo.getGuild());
}
} else {
@@ -495,7 +496,7 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
});
updateUIBasedOnTypeAndUser();
dianj(1);
// dianj(1);
showCp();
}
@@ -506,8 +507,15 @@ public class RoomUserInfoFragment extends BaseMvpDialogFragment<RoomUserPresente
ImageUtils.loadHeadCC(userInfo.getCp_info().user_info2.avatar, mBinding.userNav2);
mBinding.tvNickname1.setText(userInfo.getCp_info().user_info1.nickname);
mBinding.tvNickname2.setText(userInfo.getCp_info().user_info2.nickname);
mBinding.tvCpLv.setText("Lv" + userInfo.getCp_info().level + " " + userInfo.getCp_info().name);
mBinding.tvCpNum.setText(userInfo.getCp_info().exp);
mBinding.tvCpLv.setText("LV" + userInfo.getCp_info().level + " " + userInfo.getCp_info().name);
long xd = Long.parseLong(userInfo.getCp_info().exp);
if (xd >= 10000) {
mBinding.tvCpNum.setText(String.format("%.2fw", xd / 10000.0f));
} else {
mBinding.tvCpNum.setText(String.valueOf(xd));
}
mBinding.cpAnim.setSource(userInfo.getCp_info().pendant, 1);