Dynamic live layout width

pull/171/head
FongMi 2 years ago
parent 9d2bb97f16
commit 5ba423c686
  1. 1
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 3
      app/src/leanback/res/layout/activity_live.xml
  3. 13
      app/src/main/java/com/fongmi/android/tv/bean/Live.java
  4. 7
      app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java
  5. 15
      app/src/mobile/res/layout/activity_live.xml
  6. 9
      app/src/mobile/res/layout/adapter_channel.xml
  7. 9
      app/src/mobile/res/layout/adapter_group.xml

@ -249,6 +249,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
mGroupAdapter.setItems(items, null);
setPosition(LiveConfig.get().find(items));
mBinding.control.home.setText(home.getName());
mBinding.group.getLayoutParams().width = home.getWidth();
}
private void setPosition(int[] position) {

@ -59,7 +59,8 @@
android:layout_height="match_parent"
android:background="@drawable/shape_live_list"
android:orientation="horizontal"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<com.fongmi.android.tv.ui.custom.CustomLiveListView
android:id="@+id/group"

@ -5,6 +5,7 @@ import android.text.TextUtils;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.utils.ResUtil;
import com.google.gson.JsonElement;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
@ -169,6 +170,18 @@ public class Live {
return item;
}
public boolean hasLogo() {
for (Group group : getGroups()) if (group.getLogo().length() > 0) return true;
return false;
}
public int getWidth() {
int width = 0;
for (Group group : getGroups()) width = Math.max(width, ResUtil.getTextWidth(group.getName(), 16) + ResUtil.dp2px(60));
if (hasLogo()) width += ResUtil.dp2px(48);
return width;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;

@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.os.Build;
@ -129,4 +130,10 @@ public class ResUtil {
public static Display getDisplay(Activity activity) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R ? activity.getDisplay() : activity.getWindowManager().getDefaultDisplay();
}
public static int getTextWidth(String content, int textSize) {
Paint paint = new Paint();
paint.setTextSize(sp2px(textSize));
return (int) paint.measureText(content);
}
}

@ -62,14 +62,11 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/group"
android:layout_width="120dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="8dp"
android:paddingTop="8dp"
android:paddingEnd="8dp"
android:paddingBottom="8dp"
android:padding="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="5"
tools:listitem="@layout/adapter_group" />
@ -81,14 +78,12 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/channel"
android:layout_width="260dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="8dp"
android:paddingTop="8dp"
android:paddingEnd="8dp"
android:paddingBottom="8dp"
android:minWidth="260dp"
android:padding="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="5"
tools:listitem="@layout/adapter_channel" />

@ -3,15 +3,15 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:background="@drawable/shape_channel"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingTop="6dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp">
android:paddingBottom="6dp">
<TextView
android:id="@+id/number"
@ -37,6 +37,7 @@
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:ellipsize="marquee"
android:maxEms="10"
android:singleLine="true"
android:textColor="@color/channel"
android:textSize="14sp"

@ -3,15 +3,15 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:background="@drawable/shape_group"
android:gravity="center"
android:orientation="horizontal"
android:paddingStart="12dp"
android:paddingTop="8dp"
android:paddingTop="6dp"
android:paddingEnd="12dp"
android:paddingBottom="8dp">
android:paddingBottom="6dp">
<ImageView
android:id="@+id/logo"
@ -27,6 +27,7 @@
android:layout_height="wrap_content"
android:duplicateParentState="true"
android:ellipsize="marquee"
android:maxEms="10"
android:singleLine="true"
android:textColor="@color/group"
android:textSize="14sp"

Loading…
Cancel
Save