From e8914ccbd2a5923f799b80ebb9dbdbb7fb2ec387 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 28 Feb 2023 01:48:57 +0800 Subject: [PATCH] [mobile] fix vod size --- .../com/fongmi/android/tv/utils/ResUtil.java | 5 +++++ .../java/com/fongmi/android/tv/Product.java | 13 +++++++++++++ .../tv/ui/activity/CollectActivity.java | 18 ++++++++---------- .../android/tv/ui/adapter/HistoryAdapter.java | 10 +++------- .../android/tv/ui/adapter/VodAdapter.java | 19 +++++-------------- .../tv/ui/fragment/child/HomeFragment.java | 2 ++ .../tv/ui/fragment/child/TypeFragment.java | 1 + 7 files changed, 37 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java index 7baca2a0f..721d83d61 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.utils; import android.app.Activity; +import android.content.Context; import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; @@ -22,6 +23,10 @@ public class ResUtil { return App.get().getResources().getDisplayMetrics(); } + public static int getScreenWidthPx(Context context) { + return context.getResources().getDisplayMetrics().widthPixels; + } + public static int getScreenWidthPx() { return getDisplayMetrics().widthPixels; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/Product.java b/app/src/mobile/java/com/fongmi/android/tv/Product.java index f9be7b841..bc5f8fb85 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/Product.java +++ b/app/src/mobile/java/com/fongmi/android/tv/Product.java @@ -1,8 +1,10 @@ package com.fongmi.android.tv; +import android.content.Context; import android.content.res.Resources; import com.fongmi.android.tv.utils.Prefers; +import com.fongmi.android.tv.utils.ResUtil; public class Product { @@ -16,4 +18,15 @@ public class Product { public static void bootLive() { } + + public static int[] getSpec(Context context) { + return getSpec(context, ResUtil.dp2px(32) + ResUtil.dp2px(16 * (getColumn() - 1)), getColumn()); + } + + public static int[] getSpec(Context context, int space, int column) { + int base = ResUtil.getScreenWidthPx(context) - space; + int width = base / column; + int height = (int) (width / 0.75f); + return new int[]{width, height}; + } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java index d770f301b..72fa22e42 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.Constant; +import com.fongmi.android.tv.Product; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.Collect; import com.fongmi.android.tv.bean.Site; @@ -78,16 +79,6 @@ public class CollectActivity extends BaseActivity implements CollectAdapter.OnCl }); } - private void setLayoutSize() { - int width = (ResUtil.getScreenWidthPx() - ResUtil.dp2px(64)) / 3; - int height = (int) (width / 0.75f); - RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mBinding.collect.getLayoutParams(); - params.width = width + ResUtil.dp2px(24); - mBinding.collect.setLayoutParams(params); - mVodAdapter.setWidth(width); - mVodAdapter.setHeight(height); - } - private void setRecyclerView() { mBinding.collect.setHasFixedSize(true); mBinding.collect.setItemAnimator(null); @@ -95,6 +86,13 @@ public class CollectActivity extends BaseActivity implements CollectAdapter.OnCl mBinding.recycler.setHasFixedSize(true); mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this)); mBinding.recycler.setLayoutManager(new GridLayoutManager(this, 2)); + mVodAdapter.setSize(Product.getSpec(getActivity(), ResUtil.dp2px(64), 3)); + } + + private void setLayoutSize() { + RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mBinding.collect.getLayoutParams(); + params.width = mVodAdapter.getWidth() + ResUtil.dp2px(24); + mBinding.collect.setLayoutParams(params); } private void setViewModel() { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java index d6b44cbba..d0c60098f 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java @@ -7,7 +7,6 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.fongmi.android.tv.Product; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.History; @@ -28,7 +27,6 @@ public class HistoryAdapter extends RecyclerView.Adapter(); - setLayoutSize(); } public interface OnClickListener { @@ -40,11 +38,9 @@ public class HistoryAdapter extends RecyclerView.Adapter { public VodAdapter(OnClickListener listener) { this.mListener = listener; this.mItems = new ArrayList<>(); - setLayoutSize(); } public interface OnClickListener { @@ -34,19 +31,13 @@ public class VodAdapter extends RecyclerView.Adapter { boolean onLongClick(Vod item); } - private void setLayoutSize() { - int space = ResUtil.dp2px(32) + ResUtil.dp2px(16 * (Product.getColumn() - 1)); - int base = ResUtil.getScreenWidthPx() - space; - width = base / Product.getColumn(); - height = (int) (width / 0.75f); + public void setSize(int[] size) { + this.width = size[0]; + this.height = size[1]; } - public void setWidth(int width) { - this.width = width; - } - - public void setHeight(int height) { - this.height = height; + public int getWidth() { + return width; } static class ViewHolder extends RecyclerView.ViewHolder { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java index 52312b999..ed913efe4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java @@ -72,6 +72,8 @@ public class HomeFragment extends BaseFragment implements VodAdapter.OnClickList mBinding.recommend.setHasFixedSize(true); mBinding.recommend.setLayoutManager(new GridLayoutManager(getContext(), Product.getColumn())); mBinding.recommend.setAdapter(mVodAdapter = new VodAdapter(this)); + mHistoryAdapter.setSize(Product.getSpec(getActivity())); + mVodAdapter.setSize(Product.getSpec(getActivity())); } private void setViewModel() { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java index 65ef0f7e1..dc29567b7 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java @@ -88,6 +88,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac mBinding.recycler.setHasFixedSize(true); mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this)); mBinding.recycler.setLayoutManager(new GridLayoutManager(getContext(), Product.getColumn())); + mVodAdapter.setSize(Product.getSpec(getActivity())); } private void setViewModel() {