feat:完成用户资料页优化需求

This commit is contained in:
Max
2023-12-27 14:47:59 +08:00
parent b9d59e9477
commit 7709020221
8 changed files with 248 additions and 84 deletions

Binary file not shown.

View File

@@ -274,7 +274,11 @@ class MeFragment : BaseFragment(), View.OnClickListener {
if (it.isParentMode) {
mBinding.meItemSkill.isVisible = false
}
it.userHeadwear?.effect?.let { effect ->
var avatarBorder = it.userHeadwear?.effect
if (avatarBorder.isNullOrEmpty()) {
avatarBorder = it.userHeadwear?.pic
}
avatarBorder?.let { effect ->
if (mBinding.ivHeadWear.tag != effect) {
NobleUtil.loadHeadWear(effect, mBinding.ivHeadWear)
mBinding.ivHeadWear.tag = effect

View File

@@ -66,6 +66,7 @@ import com.nnbc123.app.vip.VipHelper;
import com.nnbc123.core.auth.AuthModel;
import com.nnbc123.core.im.friend.IMFriendModel;
import com.nnbc123.core.level.UserLevelVo;
import com.nnbc123.core.noble.NobleUtil;
import com.nnbc123.core.praise.PraiseModel;
import com.nnbc123.core.praise.event.IsLikedEvent;
import com.nnbc123.core.praise.event.PraiseEvent;
@@ -86,6 +87,7 @@ import com.nnbc123.library.annatation.ActLayoutRes;
import com.nnbc123.library.utils.ListUtils;
import com.nnbc123.library.utils.SingleToastUtil;
import com.nnbc123.library.utils.SizeUtils;
import com.nnbc123.library.utils.StringUtils;
import com.nnbc123.xchat_android_constants.XChatConstants;
import org.greenrobot.eventbus.EventBus;
@@ -207,19 +209,40 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
mBinding.ivEdit.setOnClickListener(this);
mBinding.flAvatar.setOnClickListener(this);
mBinding.tvErbanId.setOnClickListener(this);
mBinding.layoutRoom.setOnClickListener(this);
}
/**
* 找到TA, 主态不展示
*/
private void setWhereVisible() {
if (viewModel.getMRoomUid() != 0) {
mBinding.flLiving.setVisibility(View.VISIBLE);
ImageLoadKt.loadFromAssets(mBinding.svgaLiving, "svga/living_black.svga");
mBinding.ivAvatar.setBorderColor(Color.parseColor("#FFE710"));
private void loadRoomInfo(UserDetailInfo.DataBean info){
if (info != null && info.getRoomUid() > 0) {
mBinding.layoutRoom.setVisibility(View.VISIBLE);
ImageLoadKt.loadFromAssets(mBinding.svgaRoom, "svga/user_in_live.svga");
mBinding.tvRoomName.setText(info.getRoomTitle());
} else {
mBinding.flLiving.setVisibility(View.GONE);
mBinding.svgaRoom.stopAnimation();
mBinding.layoutRoom.setVisibility(View.GONE);
}
}
private void loadUserAvatar(UserDetailInfo.DataBean info) {
if (info == null) {
return;
}
String avatar = info.getAvatar();
String avatarBorder = null;
if (info.getUserHeadwear() != null) {
avatarBorder = info.getUserHeadwear().getEffect();
if (StringUtils.isEmpty(avatarBorder)) {
avatarBorder = info.getUserHeadwear().getPic();
}
}
ImageLoadKt.loadAvatar(mBinding.ivAvatar, avatar);
if (StringUtils.isEmpty(avatarBorder)) {
mBinding.ivAvatar.setBorderColor(Color.WHITE);
mBinding.ivAvatarBorder.setVisibility(View.GONE);
} else {
mBinding.ivAvatar.setBorderColor(Color.TRANSPARENT);
NobleUtil.loadHeadWear(avatarBorder, mBinding.ivAvatarBorder);
mBinding.ivAvatarBorder.setVisibility(View.VISIBLE);
}
}
@@ -308,7 +331,13 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
isShowPage = true;
}
initPhoto(dataBean.getPrivatePhoto());
setWhereVisible();
loadRoomInfo(dataBean);
loadUserAvatar(dataBean);
if (dataBean.isInOnline()) {
mBinding.layoutOnline.setVisibility(View.VISIBLE);
} else {
mBinding.layoutOnline.setVisibility(View.GONE);
}
});
}
@@ -386,7 +415,6 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
}
VipHelper.loadVipIcon(mBinding.ivVipIcon, userInfo.getUserVipInfoVO());
ImageLoadKt.loadAvatar(mBinding.ivAvatar, userInfo.getAvatar());
}
}
@@ -536,6 +564,17 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.layout_room:
if (userInfo == null) {
toast("用户信息为空。");
return;
}
if (viewModel.getMRoomUid() != 0) {
AVRoomActivity.startForFromType(this, viewModel.getMRoomUid(),
AVRoomActivity.FROM_TYPE_USER, userInfo.getNick(), String.valueOf(userInfo.getUid()));
}
break;
case R.id.iv_user_back:
finish();
break;
@@ -602,14 +641,6 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
}
break;
case R.id.fl_avatar:
if (userInfo == null) {
toast("用户信息为空。");
return;
}
if (viewModel.getMRoomUid() != 0) {
AVRoomActivity.startForFromType(this, viewModel.getMRoomUid(),
AVRoomActivity.FROM_TYPE_USER, userInfo.getNick(), String.valueOf(userInfo.getUid()));
}
break;
case R.id.tv_erban_id:
if (userInfo == null) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="10dp"
android:height="10dp"
android:viewportWidth="10"
android:viewportHeight="10">
<path
android:pathData="M4.65,0.65C4.45,0.85 4.45,1.175 4.65,1.375L8.266,5L4.65,8.625C4.45,8.825 4.45,9.15 4.65,9.35C4.849,9.55 5.173,9.55 5.373,9.35L9.35,5.362C9.55,5.162 9.55,4.838 9.35,4.638L5.373,0.65C5.173,0.45 4.849,0.45 4.65,0.65Z"
android:strokeWidth="0.1"
android:fillColor="#347ACA"
android:strokeColor="#347ACA"
android:fillType="evenOdd"/>
</vector>

View File

@@ -103,9 +103,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="211dp"
android:background="@drawable/shape_white_top_14dp"
android:orientation="vertical"
android:paddingStart="15dp"
android:paddingEnd="15dp">
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@@ -116,6 +114,7 @@
android:id="@+id/iv_vip_icon"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginStart="15dp"
android:adjustViewBounds="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
@@ -138,7 +137,7 @@
android:textSize="18dp"
app:layout_constraintStart_toEndOf="@id/iv_vip_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginStart="0dp"
app:layout_goneMarginStart="@dimen/dp_15"
tools:drawableRight="@drawable/ic_gender_male"
tools:text="KiKing天地天地King天地天地ng天地天地" />
@@ -160,10 +159,32 @@
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:text="金牛座" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_attention"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_26"
android:layout_gravity="end"
android:background="@drawable/bg_attention"
android:drawableStart="@drawable/icon_new_attention"
android:drawablePadding="2dp"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_12"
android:paddingEnd="@dimen/dp_14"
android:text="@string/attention"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_12"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tv_nick"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_constellation"
app:layout_constraintTop_toTopOf="@id/tv_nick"
tools:visibility="visible" />
<LinearLayout
android:id="@+id/ll_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="5dp"
android:gravity="center"
app:layout_constraintStart_toStartOf="parent"
@@ -206,6 +227,7 @@
android:id="@+id/ll_level"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="@dimen/dp_8"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@id/ll_id">
@@ -276,64 +298,136 @@
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_room"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginHorizontal="@dimen/dp_12"
android:layout_marginTop="@dimen/dp_12"
android:background="@drawable/user_info_bg_room_info"
android:visibility="gone"
app:layout_constraintDimensionRatio="351:63"
app:layout_constraintTop_toBottomOf="@id/ll_level"
tools:visibility="visible">
<TextView
android:id="@+id/tv_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:background="@drawable/shape_f8f8fb_radius_4dp"
android:ellipsize="end"
android:maxLines="2"
android:padding="10dp"
android:textColor="@color/text_secondary_878b9c"
android:textSize="@dimen/sp_12"
tools:text="关注我喜欢关注我喜欢我就关注我喜欢我就关注我我就关注我我就关注我喜欢我就关注我我就关注我" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/line_content_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.7619" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/svga_room"
android:layout_width="@dimen/dp_10"
android:layout_height="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_16"
app:autoPlay="true"
app:clearsAfterDetached="true"
app:layout_constraintBottom_toTopOf="@id/tv_room_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:src="@drawable/default_cover" />
<TextView
android:id="@+id/tv_room_living"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_4"
android:text="正在房间"
android:textColor="@color/white"
android:textSize="@dimen/dp_10"
app:layout_constraintBottom_toBottomOf="@id/svga_room"
app:layout_constraintStart_toEndOf="@id/svga_room"
app:layout_constraintTop_toTopOf="@id/svga_room" />
<TextView
android:id="@+id/tv_room_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_2"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="@dimen/dp_12"
app:layout_constraintBottom_toBottomOf="@id/line_content_bottom"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/svga_room"
tools:text="Name" />
<TextView
android:id="@+id/tv_room_go"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
android:layout_marginEnd="@dimen/dp_16"
android:background="@drawable/shape_white_12dp_round"
android:drawableEnd="@drawable/user_info_ic_room_arrow"
android:gravity="center_vertical"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_9"
android:text="热聊中"
android:textColor="#347ACA"
android:textSize="@dimen/dp_11"
app:layout_constraintBottom_toBottomOf="@id/line_content_bottom"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:background="@drawable/shape_f8f8fb_radius_4dp"
android:ellipsize="end"
android:maxLines="2"
android:padding="10dp"
android:textColor="@color/text_secondary_878b9c"
android:textSize="@dimen/sp_12"
app:layout_constraintTop_toBottomOf="@id/layout_room"
app:layout_goneMarginTop="10dp"
tools:text="关注我喜欢关注我喜欢我就关注我喜欢我就关注我我就关注我我就关注我喜欢我就关注我我就关注我" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/fl_avatar"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_marginStart="22dp"
android:layout_marginTop="175dp">
android:layout_width="88dp"
android:layout_height="88dp"
android:layout_marginStart="8dp"
android:layout_marginTop="167dp">
<com.nnbc123.app.common.widget.CircleImageView
android:id="@+id/iv_avatar"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_gravity="center"
android:src="@drawable/default_avatar"
app:cborder_color="@color/white"
app:cborder_width="1dp" />
<FrameLayout
android:id="@+id/fl_living"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="bottom|end"
android:background="@drawable/shape_circle_fef411"
android:visibility="gone">
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/svga_living"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_gravity="center"
app:autoPlay="false" />
</FrameLayout>
<ImageView
android:id="@+id/iv_avatar_border"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="106dp"
android:layout_marginStart="96dp"
android:layout_marginTop="221dp"
android:layout_marginEnd="@dimen/dp_20"
android:baselineAligned="true"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
@@ -349,32 +443,36 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_weight="1"
android:maxLines="1"
android:textColor="@color/text_normal_282828"
android:textSize="@dimen/sp_13"
tools:text="19" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_online"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:visibility="gone"
tools:visibility="visible">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_attention"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="221dp"
android:layout_marginEnd="@dimen/dp_16"
android:drawableStart="@drawable/icon_new_attention"
android:drawablePadding="2dp"
android:paddingStart="@dimen/dp_12"
android:paddingTop="@dimen/dp_6"
android:paddingEnd="@dimen/dp_14"
android:paddingBottom="@dimen/dp_6"
android:text="@string/attention"
android:textColor="@color/color_2B2D33"
android:textSize="@dimen/sp_12"
android:visibility="gone"
android:background="@drawable/bg_attention"
tools:visibility="visible" />
<ImageView
android:id="@+id/iv_online"
android:layout_width="@dimen/dp_6"
android:layout_height="@dimen/dp_6"
android:src="@drawable/base_circle_4dff91" />
<TextView
android:id="@+id/tv_online"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_4"
android:text="在线"
android:textColor="#696D7A"
android:textSize="@dimen/dp_11" />
</LinearLayout>
</LinearLayout>
</FrameLayout>

View File

@@ -54,8 +54,8 @@
<com.nnbc123.app.common.widget.CircleImageView
android:id="@+id/iv_user_head"
avatarUrl="@{TextUtils.isEmptyText(userInfo.newAvatar)?userInfo.avatar:userInfo.newAvatar}"
android:layout_width="68dp"
android:layout_height="68dp"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_marginStart="25dp"
android:layout_marginTop="@dimen/dp_10"
android:onClick="@{click}"