From 7145ca6631d3390337ab6798cd7634115933aa4c Mon Sep 17 00:00:00 2001 From: amoylel Date: Fri, 26 Aug 2022 13:04:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=88=97=E8=A1=A8=E5=AE=BD=E5=BA=A6=E8=87=AA?= =?UTF-8?q?=E9=80=82=E5=BA=94=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/ui/activity/DetailActivity.java | 32 ++++++++++++++++++- app/src/main/res/layout/item_series.xml | 9 +++--- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index e93785c0..41afca88 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -70,6 +70,12 @@ import java.util.concurrent.Executors; import me.jessyan.autosize.utils.AutoSizeUtils; +import android.graphics.Paint; +import android.text.TextPaint; +import androidx.annotation.NonNull; +import android.graphics.Typeface; +import androidx.recyclerview.widget.RecyclerView; + /** * @author pj567 * @date :2020/12/22 @@ -110,6 +116,7 @@ public class DetailActivity extends BaseActivity { private View seriesFlagFocus = null; private boolean isReverse; private String preFlag=""; + private V7GridLayoutManager mGridViewLayoutMgr = null; @Override protected int getLayoutResID() { @@ -148,7 +155,10 @@ public class DetailActivity extends BaseActivity { mEmptyPlayList = findViewById(R.id.mEmptyPlaylist); mGridView = findViewById(R.id.mGridView); mGridView.setHasFixedSize(true); - mGridView.setLayoutManager(new V7GridLayoutManager(this.mContext, isBaseOnWidth() ? 6 : 7)); + mGridView.setHasFixedSize(false); + this.mGridViewLayoutMgr = new V7GridLayoutManager(this.mContext, isBaseOnWidth() ? 6 : 7); + mGridView.setLayoutManager(this.mGridViewLayoutMgr); +// mGridView.setLayoutManager(new V7GridLayoutManager(this.mContext, isBaseOnWidth() ? 6 : 7)); seriesAdapter = new SeriesAdapter(); mGridView.setAdapter(seriesAdapter); mGridViewFlag = findViewById(R.id.mGridViewFlag); @@ -382,6 +392,26 @@ public class DetailActivity extends BaseActivity { if(canSelect)vodInfo.seriesMap.get(vodInfo.playFlag).get(vodInfo.playIndex).selected = true; } + Paint pFont = new Paint(); +// pFont.setTypeface(Typeface.DEFAULT ); + Rect rect = new Rect(); + + List list = vodInfo.seriesMap.get(vodInfo.playFlag); + int w = 1; + for(int i =0; i < list.size(); ++i){ + String name = list.get(i).name; + pFont.getTextBounds(name, 0, name.length(), rect); + if(w < rect.width()){ + w = rect.width(); + } + } + w += 32; + int screenWidth = getWindowManager().getDefaultDisplay().getWidth()/3; + int offset = screenWidth/w; + if(offset <=1) offset =1; + if(offset > 6) offset =6; + this.mGridViewLayoutMgr.setSpanCount(offset); + seriesAdapter.setNewData(vodInfo.seriesMap.get(vodInfo.playFlag)); mGridView.postDelayed(new Runnable() { @Override diff --git a/app/src/main/res/layout/item_series.xml b/app/src/main/res/layout/item_series.xml index 7c728eae..c661f63e 100644 --- a/app/src/main/res/layout/item_series.xml +++ b/app/src/main/res/layout/item_series.xml @@ -1,14 +1,15 @@ - - \ No newline at end of file + \ No newline at end of file