initHourRankList UI调整
This commit is contained in:
parent
87e372e8f9
commit
636f5ded6f
@ -1,54 +1,96 @@
|
|||||||
package com.yunbao.live.viewmodel;
|
package com.yunbao.live.viewmodel;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewParent;
|
import android.view.ViewParent;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
|
|
||||||
|
import com.momo.mcamera.util.JsonUtil;
|
||||||
|
import com.yunbao.common.interfaces.CommonCallback;
|
||||||
import com.yunbao.common.utils.SpUtil;
|
import com.yunbao.common.utils.SpUtil;
|
||||||
import com.yunbao.live.R;
|
import com.yunbao.live.R;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.rong.common.LibStorageUtils;
|
||||||
|
|
||||||
//直播时候位置做的 viewModel 注意这里
|
//直播时候位置做的 viewModel 注意这里
|
||||||
public class LivePositionViewModel extends ViewModel {
|
public class LivePositionViewModel extends ViewModel {
|
||||||
|
|
||||||
//值判断到此根节点的位置
|
//直播播放区域
|
||||||
private View RootView ;
|
private static String LIVE_BROADCAST_AREA = "live_broadcast_area";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
// Recursively check the visibility of this view and all its parent views
|
||||||
* 计算控件 Z 相对于 ViewGroupA 的位置
|
private Boolean isViewVisible(View view) {
|
||||||
* @param child 当前控件 Z
|
if (view.getVisibility() != View.VISIBLE) {
|
||||||
* @param parent 目标 ViewGroupA
|
return false;
|
||||||
* @return 相对位置 [x, y]
|
}
|
||||||
*/
|
Object currentView = view;
|
||||||
public static int[] calculateRelativePosition(View child, View parent) {
|
while (currentView instanceof View) {
|
||||||
|
currentView = ((View) currentView).getParent();
|
||||||
|
if (currentView instanceof View) {
|
||||||
|
View parent = (View) currentView;
|
||||||
|
if (parent.getVisibility() != View.VISIBLE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void addViewTreeObserver(View view) {
|
||||||
|
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
|
@Override
|
||||||
|
public void onGlobalLayout() {
|
||||||
|
// 检查view是否可见
|
||||||
|
if (isViewVisible(view)) {//当一个控件变得可见的时候
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
|
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
||||||
|
} else {
|
||||||
|
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ViewPosition calculateRelativePosition(View child) {
|
||||||
int[] position = new int[2]; // 存储相对位置 [x, y]
|
int[] position = new int[2]; // 存储相对位置 [x, y]
|
||||||
|
|
||||||
child.getLocationInWindow(position);
|
child.getLocationInWindow(position);
|
||||||
child.getLocationOnScreen(position);
|
return new ViewPosition(position[0], position[1], child.getWidth(), child.getHeight());
|
||||||
//child.getLocationInSurface(position);
|
|
||||||
|
|
||||||
|
|
||||||
// while (child != null && child != parent) {
|
|
||||||
// if (child instanceof ViewGroup) {
|
|
||||||
// ViewGroup viewGroup = (ViewGroup) child;
|
|
||||||
// int[] childLocation = new int[2];
|
|
||||||
// child.getLocationInParent(viewGroup);
|
|
||||||
// position[0] += childLocation[0];
|
|
||||||
// position[1] += childLocation[1];
|
|
||||||
// } else {
|
|
||||||
// int[] childLocation = new int[2];
|
|
||||||
// child.getLocationInParent((ViewGroup) child.getParent());
|
|
||||||
// position[0] += childLocation[0];
|
|
||||||
// position[1] += childLocation[1];
|
|
||||||
// }
|
|
||||||
// child = child.getParent() instanceof View ? (View) child.getParent() : null;
|
|
||||||
// }
|
|
||||||
|
|
||||||
return position;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void saveViewPosition(String keyStr, ViewPosition saveViewPosition) {
|
||||||
|
SpUtil.setStringValue(keyStr, JsonUtil.instance.toJson(saveViewPosition));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ViewPosition getViewPosition(String keyStr) {
|
||||||
|
String json = SpUtil.getStringValue(keyStr);
|
||||||
|
if (!TextUtils.isEmpty(json)) {
|
||||||
|
return JsonUtil.instance.fromJson(json, ViewPosition.class);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveViewPosition(View view) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3564,13 +3564,13 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
if (flipper.getChildCount() > 0) {
|
if (flipper.getChildCount() > 0) {
|
||||||
flipper.removeAllViews();
|
flipper.removeAllViews();
|
||||||
}
|
}
|
||||||
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(16), DpUtil.dp2px(16));
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(14), DpUtil.dp2px(14));
|
||||||
// LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||||
// textParams.leftMargin = DpUtil.dp2px(5);
|
textParams.leftMargin = DpUtil.dp2px(5);
|
||||||
// params.leftMargin = DpUtil.dp2px(5);
|
params.leftMargin = DpUtil.dp2px(5);
|
||||||
View hotView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list2, null);
|
View hotView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
|
||||||
hotView.setTag("hotView");
|
hotView.setTag("hotView");
|
||||||
View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list2, null);
|
View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
|
||||||
hourView.setTag("hourView");
|
hourView.setTag("hourView");
|
||||||
ImageView hotPic = hotView.findViewById(R.id.wish_pic);
|
ImageView hotPic = hotView.findViewById(R.id.wish_pic);
|
||||||
ImageView hourPic = hourView.findViewById(R.id.wish_pic);
|
ImageView hourPic = hourView.findViewById(R.id.wish_pic);
|
||||||
@ -3578,15 +3578,15 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
mHourRank = hourView.findViewById(R.id.wish_index);
|
mHourRank = hourView.findViewById(R.id.wish_index);
|
||||||
mHotText.setText("0");
|
mHotText.setText("0");
|
||||||
mHourRank.setText(mHourRank.getContext().getString(R.string.heat_add));
|
mHourRank.setText(mHourRank.getContext().getString(R.string.heat_add));
|
||||||
// mHotText.setLayoutParams(textParams);
|
mHotText.setLayoutParams(textParams);
|
||||||
// mHourRank.setLayoutParams(textParams);
|
mHourRank.setLayoutParams(textParams);
|
||||||
// mHotText.setGravity(Gravity.CENTER);
|
mHotText.setGravity(Gravity.CENTER);
|
||||||
// mHourRank.setGravity(Gravity.CENTER);
|
mHourRank.setGravity(Gravity.CENTER);
|
||||||
setHourRankData(Long.parseLong(model.getRank()));
|
setHourRankData(Long.parseLong(model.getRank()));
|
||||||
hotPic.setImageResource(R.mipmap.ic_live_hot_rank);
|
hotPic.setImageResource(R.mipmap.ic_live_hot_rank);
|
||||||
hourPic.setImageResource(R.mipmap.ic_live_hour_rank);
|
hourPic.setImageResource(R.mipmap.ic_live_hour_rank);
|
||||||
// hotPic.setLayoutParams(params);
|
hotPic.setLayoutParams(params);
|
||||||
// hourPic.setLayoutParams(params);
|
hourPic.setLayoutParams(params);
|
||||||
flipper.addView(hotView);
|
flipper.addView(hotView);
|
||||||
flipper.addView(hourView);
|
flipper.addView(hourView);
|
||||||
flipper.startFlipping();
|
flipper.startFlipping();
|
||||||
@ -3618,30 +3618,30 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
if (flipper.getChildCount() > 0) {
|
if (flipper.getChildCount() > 0) {
|
||||||
flipper.removeAllViews();
|
flipper.removeAllViews();
|
||||||
}
|
}
|
||||||
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(16), DpUtil.dp2px(16));
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DpUtil.dp2px(11), ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||||
// LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||||
// textParams.leftMargin = DpUtil.dp2px(5);
|
textParams.leftMargin = DpUtil.dp2px(5);
|
||||||
// params.leftMargin = DpUtil.dp2px(5);
|
params.leftMargin = DpUtil.dp2px(5);
|
||||||
API.get().pdLiveApi(mContext).getHourChartRank(mLiveUid).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(listResponseModel -> {
|
API.get().pdLiveApi(mContext).getHourChartRank(mLiveUid).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(listResponseModel -> {
|
||||||
List<HourRank> info = listResponseModel.getData().getInfo();
|
List<HourRank> info = listResponseModel.getData().getInfo();
|
||||||
if (!info.isEmpty()) {
|
if (!info.isEmpty()) {
|
||||||
View hotView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list2, null);
|
View hotView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
|
||||||
View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list2, null);
|
View hourView = LayoutInflater.from(mContext).inflate(R.layout.view_wish_list, null);
|
||||||
ImageView hotPic = hotView.findViewById(R.id.wish_pic);
|
ImageView hotPic = hotView.findViewById(R.id.wish_pic);
|
||||||
ImageView hourPic = hourView.findViewById(R.id.wish_pic);
|
ImageView hourPic = hourView.findViewById(R.id.wish_pic);
|
||||||
mHotText = hotView.findViewById(R.id.wish_index);
|
mHotText = hotView.findViewById(R.id.wish_index);
|
||||||
mHourRank = hourView.findViewById(R.id.wish_index);
|
mHourRank = hourView.findViewById(R.id.wish_index);
|
||||||
mHotText.setText("0");
|
mHotText.setText("0");
|
||||||
mHourRank.setText(mHourRank.getContext().getString(R.string.heat_add));
|
mHourRank.setText(mHourRank.getContext().getString(R.string.heat_add));
|
||||||
// mHotText.setLayoutParams(textParams);
|
mHotText.setLayoutParams(textParams);
|
||||||
// mHourRank.setLayoutParams(textParams);
|
mHourRank.setLayoutParams(textParams);
|
||||||
// mHotText.setGravity(Gravity.CENTER);
|
mHotText.setGravity(Gravity.CENTER);
|
||||||
// mHourRank.setGravity(Gravity.CENTER);
|
mHourRank.setGravity(Gravity.CENTER);
|
||||||
setHourRankData(info.get(0).getRank());
|
setHourRankData(info.get(0).getRank());
|
||||||
hotPic.setImageResource(R.mipmap.ic_live_hot_rank);
|
hotPic.setImageResource(R.mipmap.ic_live_hot_rank);
|
||||||
hourPic.setImageResource(R.mipmap.ic_live_hour_rank);
|
hourPic.setImageResource(R.mipmap.ic_live_hour_rank);
|
||||||
// hotPic.setLayoutParams(params);
|
hotPic.setLayoutParams(params);
|
||||||
// hourPic.setLayoutParams(params);
|
hourPic.setLayoutParams(params);
|
||||||
flipper.addView(hotView);
|
flipper.addView(hotView);
|
||||||
flipper.addView(hourView);
|
flipper.addView(hourView);
|
||||||
flipper.startFlipping();
|
flipper.startFlipping();
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
tools:layout_width="70dp"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:background="@color/transparent"
|
|
||||||
tools:background="@drawable/bg_live_item"
|
|
||||||
tools:layout_height="22.5dp">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/wish_pic"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
tools:src="@mipmap/ic_live_hot_rank"
|
|
||||||
android:layout_marginStart="7dp"
|
|
||||||
android:layout_marginBottom="1dp"
|
|
||||||
android:layout_width="11dp"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
<com.yunbao.common.views.weight.MarqueeTextView
|
|
||||||
android:id="@+id/wish_index"
|
|
||||||
android:layout_marginBottom="1.3dp"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/wish_pic"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
tools:text="热度加成"
|
|
||||||
android:ellipsize="marquee"
|
|
||||||
android:focusable="true"
|
|
||||||
android:gravity="center"
|
|
||||||
android:focusableInTouchMode="true"
|
|
||||||
android:marqueeRepeatLimit="marquee_forever"
|
|
||||||
android:scrollHorizontally="true"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textColor="#FFFFFFFF"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
android:textSize="10sp" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
Loading…
Reference in New Issue
Block a user