[mobile] optimize image load

pull/183/head
FongMi 2 years ago
parent 1cb63dd45e
commit 6e97d859dd
  1. 9
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  2. 27
      app/src/mobile/java/com/fongmi/android/tv/ui/holder/VodFullHolder.java
  3. 4
      app/src/mobile/res/layout/adapter_vod_full.xml

@ -41,10 +41,15 @@ public class ImgUtil {
else Glide.with(App.get()).load(getUrl(url)).error(error).dontAnimate().into(target);
}
public static void load(String url, ImageView view, CustomTarget<Bitmap> target) {
if (TextUtils.isEmpty(url)) view.setImageResource(R.drawable.ic_img_error);
else Glide.with(App.get()).asBitmap().load(getUrl(url)).error(R.drawable.ic_img_error).placeholder(R.drawable.ic_img_loading).skipMemoryCache(true).dontAnimate().signature(new ObjectKey(url + "_" + Setting.getQuality())).into(target);
}
public static void load(String url, ImageView view, ImageView.ScaleType scaleType) {
view.setScaleType(scaleType);
if (TextUtils.isEmpty(url)) view.setImageResource(R.drawable.ic_img_error);
else Glide.with(App.get()).asBitmap().load(getUrl(url)).skipMemoryCache(true).dontAnimate().sizeMultiplier(Setting.getThumbnail()).signature(new ObjectKey(url + "_" + Setting.getQuality())).placeholder(R.drawable.ic_img_loading).listener(getListener(view, scaleType)).into(view);
else Glide.with(App.get()).asBitmap().load(getUrl(url)).placeholder(R.drawable.ic_img_loading).skipMemoryCache(true).dontAnimate().sizeMultiplier(Setting.getThumbnail()).signature(new ObjectKey(url + "_" + Setting.getQuality())).listener(getListener(view, scaleType)).into(view);
}
public static void loadKeep(String url, ImageView view) {
@ -62,7 +67,7 @@ public class ImgUtil {
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(url).skipMemoryCache(true).dontAnimate().signature(new ObjectKey(url)).error(R.drawable.ic_img_empty).into(view);
else Glide.with(App.get()).asBitmap().load(url).error(R.drawable.ic_img_empty).skipMemoryCache(true).dontAnimate().signature(new ObjectKey(url)).into(view);
}
public static Object getUrl(String url) {

@ -1,9 +1,15 @@
package com.fongmi.android.tv.ui.holder;
import android.view.View;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.AdapterVodFullBinding;
import com.fongmi.android.tv.ui.base.BaseVodHolder;
@ -20,7 +26,22 @@ public class VodFullHolder extends BaseVodHolder {
@Override
public void initView(Vod item) {
ImgUtil.load(item.getVodPic(), binding.image);
binding.image.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
ImgUtil.load(item.getVodPic(), binding.image, new CustomTarget<>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
binding.image.setScaleType(ImageView.ScaleType.FIT_CENTER);
binding.image.setImageBitmap(resource);
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
binding.image.setScaleType(ImageView.ScaleType.CENTER);
binding.image.setImageResource(R.drawable.ic_img_error);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
}

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="-8dp"
@ -10,6 +11,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="center" />
android:scaleType="center"
tools:src="@drawable/ic_img_loading" />
</FrameLayout>
Loading…
Cancel
Save