Clean image

pull/594/head
jhengazuki 8 months ago
parent f543941b35
commit 9a9207c713
  1. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/holder/VodListHolder.java
  2. 4
      app/src/leanback/res/layout/adapter_vod.xml
  3. 4
      app/src/leanback/res/layout/adapter_vod_list.xml
  4. 4
      app/src/leanback/res/layout/adapter_vod_oval.xml
  5. 4
      app/src/leanback/res/layout/adapter_vod_rect.xml
  6. 47
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  7. BIN
      app/src/main/res/drawable-hdpi/ic_img_empty.png
  8. BIN
      app/src/main/res/drawable-hdpi/ic_img_error.png
  9. BIN
      app/src/main/res/drawable-hdpi/ic_img_loading.png
  10. BIN
      app/src/main/res/drawable-nodpi/ic_logo.png
  11. BIN
      app/src/main/res/drawable-xhdpi/ic_img_empty.png
  12. BIN
      app/src/main/res/drawable-xhdpi/ic_img_error.png
  13. BIN
      app/src/main/res/drawable-xhdpi/ic_img_loading.png
  14. BIN
      app/src/main/res/drawable-xxhdpi/ic_img_empty.png
  15. BIN
      app/src/main/res/drawable-xxhdpi/ic_img_error.png
  16. BIN
      app/src/main/res/drawable-xxhdpi/ic_img_loading.png
  17. 10
      app/src/main/res/drawable/ic_img_error.xml
  18. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/holder/VodListHolder.java
  19. 4
      app/src/mobile/res/layout/adapter_vod.xml
  20. 1
      app/src/mobile/res/layout/adapter_vod_list.xml
  21. 4
      app/src/mobile/res/layout/adapter_vod_one.xml
  22. 4
      app/src/mobile/res/layout/adapter_vod_oval.xml
  23. 4
      app/src/mobile/res/layout/adapter_vod_rect.xml
  24. 4
      app/src/mobile/res/layout/dialog_receive.xml
  25. BIN
      other/image/logo-2.png

@ -1,7 +1,5 @@
package com.fongmi.android.tv.ui.holder;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.bean.Vod;
@ -29,6 +27,6 @@ public class VodListHolder extends BaseVodHolder {
binding.remark.setVisibility(item.getRemarkVisible());
binding.getRoot().setOnClickListener(v -> listener.onItemClick(item));
binding.getRoot().setOnLongClickListener(v -> listener.onLongClick(item));
ImgUtil.load(item.getVodName(), item.getVodPic(), binding.image, ImageView.ScaleType.FIT_CENTER, true);
ImgUtil.load(item.getVodName(), item.getVodPic(), binding.image, true);
}
}

@ -12,9 +12,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Grid.Large" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/delete"

@ -15,13 +15,11 @@
android:gravity="center_vertical"
android:orientation="horizontal">
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/image"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="16dp"
android:scaleType="fitCenter"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:src="@drawable/ic_img_error" />
<LinearLayout

@ -13,9 +13,7 @@
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Circle"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Circle" />
<TextView
android:id="@+id/name"

@ -12,9 +12,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Grid.Large" />
<TextView
android:id="@+id/year"

@ -1,6 +1,10 @@
package com.fongmi.android.tv.utils;
import static android.widget.ImageView.ScaleType.CENTER;
import static android.widget.ImageView.ScaleType.CENTER_CROP;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.View;
@ -39,31 +43,28 @@ public class ImgUtil {
}
public static void rect(String text, String url, ImageView view) {
load(text, url, view, ImageView.ScaleType.CENTER, true);
load(text, url, view, true);
}
public static void oval(String text, String url, ImageView view) {
load(text, url, view, ImageView.ScaleType.CENTER, false);
load(text, url, view, false);
}
public static void load(String text, String url, ImageView view, ImageView.ScaleType scaleType, boolean rect) {
view.setScaleType(scaleType);
if (!TextUtils.isEmpty(url)) Glide.with(App.get()).asBitmap().load(getUrl(url)).placeholder(R.drawable.ic_img_loading).skipMemoryCache(true).dontAnimate().sizeMultiplier(Setting.getThumbnail()).signature(getSignature(url)).listener(getListener(view, scaleType)).into(view);
public static void load(String text, String url, ImageView view, boolean rect) {
if (!TextUtils.isEmpty(url)) Glide.with(App.get()).asBitmap().load(getUrl(url)).skipMemoryCache(true).dontAnimate().sizeMultiplier(Setting.getThumbnail()).signature(getSignature(url)).listener(getListener(view)).into(view);
else if (!text.isEmpty()) view.setImageDrawable(getTextDrawable(text.substring(0, 1), rect));
else view.setImageResource(R.drawable.ic_img_error);
else setError(view);
}
public static void loadVod(String text, String url, ImageView view) {
view.setScaleType(ImageView.ScaleType.CENTER);
if (!TextUtils.isEmpty(url)) Glide.with(App.get()).asBitmap().load(getUrl(url)).placeholder(R.drawable.ic_img_loading).listener(getListener(view)).into(view);
if (!TextUtils.isEmpty(url)) Glide.with(App.get()).asBitmap().load(getUrl(url)).listener(getListener(view)).into(view);
else if (!text.isEmpty()) view.setImageDrawable(getTextDrawable(text.substring(0, 1), true));
else view.setImageResource(R.drawable.ic_img_error);
else setError(view);
}
public static void loadLive(String url, ImageView view) {
view.setVisibility(TextUtils.isEmpty(url) ? View.GONE : View.VISIBLE);
if (TextUtils.isEmpty(url)) view.setImageResource(R.drawable.ic_img_empty);
else Glide.with(App.get()).asBitmap().load(getUrl(url)).error(R.drawable.ic_img_empty).skipMemoryCache(true).dontAnimate().signature(getSignature(url)).into(view);
if (!TextUtils.isEmpty(url)) Glide.with(App.get()).asBitmap().load(getUrl(url)).skipMemoryCache(true).dontAnimate().signature(getSignature(url)).listener(getListener(view, View.GONE)).into(view);
}
private static Drawable getTextDrawable(String text, boolean rect) {
@ -91,23 +92,37 @@ public class ImgUtil {
}
private static RequestListener<Bitmap> getListener(ImageView view) {
return getListener(view, ImageView.ScaleType.CENTER);
return getListener(view, View.VISIBLE);
}
private static RequestListener<Bitmap> getListener(ImageView view, ImageView.ScaleType scaleType) {
private static RequestListener<Bitmap> getListener(ImageView view, int visible) {
return new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target<Bitmap> target, boolean isFirstResource) {
view.setImageResource(R.drawable.ic_img_error);
view.setScaleType(scaleType);
if (visible == View.VISIBLE) setError(view);
view.setVisibility(visible);
return true;
}
@Override
public boolean onResourceReady(@NonNull Bitmap resource, @NonNull Object model, Target<Bitmap> target, @NonNull DataSource dataSource, boolean isFirstResource) {
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
view.setVisibility(View.VISIBLE);
view.setScaleType(CENTER_CROP);
return false;
}
};
}
private static void setError(ImageView view) {
int width = view.getWidth();
int height = view.getHeight();
if (width <= 0 || height <= 0) return;
int size = Math.min(width, height) / 2;
Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Drawable drawable = ResUtil.getDrawable(R.drawable.ic_img_error);
drawable.setBounds(0, 0, size, size);
drawable.draw(new Canvas(bitmap));
view.setImageBitmap(bitmap);
view.setScaleType(CENTER);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="@color/white"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M200,840Q167,840 143.5,816.5Q120,793 120,760L120,200Q120,167 143.5,143.5Q167,120 200,120L760,120Q793,120 816.5,143.5Q840,167 840,200L840,760Q840,793 816.5,816.5Q793,840 760,840L200,840ZM240,503L400,343L560,503L720,343L760,383L760,200Q760,200 760,200Q760,200 760,200L200,200Q200,200 200,200Q200,200 200,200L200,463L240,503ZM200,760L760,760Q760,760 760,760Q760,760 760,760L760,496L720,456L560,616L400,456L240,616L200,576L200,760Q200,760 200,760Q200,760 200,760ZM200,760L200,760Q200,760 200,760Q200,760 200,760L200,496L200,576L200,463L200,383L200,200Q200,200 200,200Q200,200 200,200L200,200Q200,200 200,200Q200,200 200,200L200,463L200,463L200,576L200,576L200,760Q200,760 200,760Q200,760 200,760Z" />
</vector>

@ -1,7 +1,5 @@
package com.fongmi.android.tv.ui.holder;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.bean.Vod;
@ -29,6 +27,6 @@ public class VodListHolder extends BaseVodHolder {
binding.remark.setVisibility(item.getRemarkVisible());
binding.getRoot().setOnClickListener(v -> listener.onItemClick(item));
binding.getRoot().setOnLongClickListener(v -> listener.onLongClick(item));
ImgUtil.load(item.getVodName(), item.getVodPic(), binding.image, ImageView.ScaleType.FIT_CENTER, false);
ImgUtil.load(item.getVodName(), item.getVodPic(), binding.image, false);
}
}

@ -12,9 +12,7 @@
android:layout_width="150dp"
android:layout_height="80dp"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Grid" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/delete"

@ -15,7 +15,6 @@
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginEnd="12dp"
android:scaleType="fitCenter"
tools:src="@drawable/ic_img_error" />
<LinearLayout

@ -13,9 +13,7 @@
android:layout_width="90dp"
android:layout_height="match_parent"
android:background="@color/black_10"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Grid.Large" />
<TextView
android:id="@+id/site"

@ -13,9 +13,7 @@
android:layout_margin="8dp"
android:background="@color/black_20"
android:foreground="@drawable/shape_vod_oval"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Circle"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Circle" />
<TextView
android:id="@+id/name"

@ -12,9 +12,7 @@
android:layout_width="150dp"
android:layout_height="80dp"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Grid" />
<TextView
android:id="@+id/year"

@ -17,9 +17,7 @@
android:layout_width="90dp"
android:layout_height="120dp"
android:background="@color/black_10"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid"
tools:src="@drawable/ic_img_loading" />
app:shapeAppearanceOverlay="@style/Vod.Grid.Large" />
<include
android:id="@+id/progress"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Loading…
Cancel
Save