parent
4f999a342f
commit
cf2d645377
@ -0,0 +1,155 @@
|
|||||||
|
package com.example.stlink.configs;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
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.Glide;
|
||||||
|
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||||
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||||
|
import com.bumptech.glide.request.target.CustomTarget;
|
||||||
|
import com.bumptech.glide.request.transition.Transition;
|
||||||
|
import com.example.stlink.R;
|
||||||
|
import com.luck.picture.lib.engine.ImageEngine;
|
||||||
|
import com.luck.picture.lib.interfaces.OnCallbackListener;
|
||||||
|
import com.luck.picture.lib.utils.ActivityCompatHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author luck
|
||||||
|
* @date 2019-11-13 17:02
|
||||||
|
* @describe Glide加载引擎
|
||||||
|
*/
|
||||||
|
public class GlideEngine implements ImageEngine {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载图片
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 资源url
|
||||||
|
* @param imageView 图片承载控件
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.load(url)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载指定url并返回bitmap
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 资源url
|
||||||
|
* @param maxWidth 资源最大加载尺寸
|
||||||
|
* @param maxHeight 资源最大加载尺寸
|
||||||
|
* @param call 回调接口
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadImageBitmap(@NonNull Context context, @NonNull String url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.asBitmap()
|
||||||
|
.override(maxWidth, maxHeight)
|
||||||
|
.load(url)
|
||||||
|
.into(new CustomTarget<Bitmap>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
|
||||||
|
if (call != null) {
|
||||||
|
call.onCall(resource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadFailed(@Nullable Drawable errorDrawable) {
|
||||||
|
if (call != null) {
|
||||||
|
call.onCall(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadCleared(@Nullable Drawable placeholder) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载相册目录封面
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 图片路径
|
||||||
|
* @param imageView 承载图片ImageView
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadAlbumCover(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.asBitmap()
|
||||||
|
.load(url)
|
||||||
|
.override(180, 180)
|
||||||
|
.sizeMultiplier(0.5f)
|
||||||
|
.transform(new CenterCrop(), new RoundedCorners(8))
|
||||||
|
.placeholder(R.drawable.ps_image_placeholder)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载图片列表图片
|
||||||
|
*
|
||||||
|
* @param context 上下文
|
||||||
|
* @param url 图片路径
|
||||||
|
* @param imageView 承载图片ImageView
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void loadGridImage(@NonNull Context context, @NonNull String url, @NonNull ImageView imageView) {
|
||||||
|
if (!ActivityCompatHelper.assertValidRequest(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Glide.with(context)
|
||||||
|
.load(url)
|
||||||
|
.override(200, 200)
|
||||||
|
.centerCrop()
|
||||||
|
.placeholder(R.drawable.ps_image_placeholder)
|
||||||
|
.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pauseRequests(Context context) {
|
||||||
|
Glide.with(context).pauseRequests();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resumeRequests(Context context) {
|
||||||
|
Glide.with(context).resumeRequests();
|
||||||
|
}
|
||||||
|
|
||||||
|
private GlideEngine() {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static GlideEngine instance;
|
||||||
|
|
||||||
|
public static GlideEngine createGlideEngine() {
|
||||||
|
if (null == instance) {
|
||||||
|
synchronized (GlideEngine.class) {
|
||||||
|
if (null == instance) {
|
||||||
|
instance = new GlideEngine();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape>
|
||||||
|
<size
|
||||||
|
android:width="100dp"
|
||||||
|
android:height="100dp" />
|
||||||
|
<solid android:color="@color/ps_color_light_grey" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<bitmap
|
||||||
|
android:gravity="center"
|
||||||
|
android:src="@drawable/ps_ic_placeholder" />
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
Loading…
Reference in new issue