Skip to content

Commit

Permalink
glide 升级4.7.1
Browse files Browse the repository at this point in the history
  • Loading branch information
WengHaobin committed Aug 27, 2018
1 parent 52dc2f1 commit df79bc0
Show file tree
Hide file tree
Showing 11 changed files with 80 additions and 116 deletions.
Expand Up @@ -37,7 +37,7 @@ public int getLayoutId() {
public void onBindViewHolder(ViewHolder holder, int position) {
GankResults.Item item = data.get(position);

ILFactory.getLoader().loadNet(holder.ivGirl, item.getUrl(), null);
ILFactory.getLoader().loadNet(context, holder.ivGirl, item.getUrl(), null);

holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
Expand Down
Expand Up @@ -63,7 +63,7 @@ public void onClick(View v) {
holder.ivPart.setVisibility(View.VISIBLE);
holder.ivVedio.setVisibility(View.GONE);

ILFactory.getLoader().loadNet(holder.ivPart, item.getUrl(), null);
ILFactory.getLoader().loadNet(context, holder.ivPart, item.getUrl(), null);
holder.tvItem.setText("瞧瞧妹纸,扩展扩展视野......");
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/adapter_girl.xml
Expand Up @@ -13,6 +13,6 @@
android:layout_width="match_parent"
android:layout_height="200dp"
android:adjustViewBounds="true"
android:scaleType="fitXY" />
android:scaleType="centerCrop" />

</LinearLayout>
4 changes: 2 additions & 2 deletions build.gradle
Expand Up @@ -21,13 +21,13 @@ buildscript {

allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
mavenCentral()
maven {
url 'https://maven.google.com/'
name 'Google'
}
jcenter()
maven { url "https://jitpack.io" }
}
}

Expand Down
5 changes: 3 additions & 2 deletions conf.gradle
@@ -1,7 +1,7 @@
ext {

android = [
compileSdkVersion: 26,
compileSdkVersion: 27,

minSdkVersion : 15,
targetSdkVersion : 26,
Expand All @@ -24,7 +24,8 @@ ext {
"butterknife" : "com.jakewharton:butterknife:8.4.0",
"butterknife-apt" : "com.jakewharton:butterknife-compiler:8.4.0",
"eventbus" : "org.greenrobot:eventbus:3.0.0",
"glide" : "com.github.bumptech.glide:glide:3.7.0",
"glide" : "com.github.bumptech.glide:glide:4.7.1",
"glide-compiler" : "com.github.bumptech.glide:compiler:4.7.1",
"picasso" : "com.squareup.picasso:picasso:2.5.2",
"xrecyclerview" : "com.github.limedroid:ARecyclerView:v1.2.3",
"avi-loading" : "com.wang.avi:library:1.0.2",
Expand Down
1 change: 1 addition & 0 deletions mvp/build.gradle
Expand Up @@ -32,6 +32,7 @@ dependencies {
api rootProject.ext.dependencies["xrecyclerview"]
api rootProject.ext.dependencies["butterknife"]
api rootProject.ext.dependencies["glide"]
annotationProcessor rootProject.ext.dependencies["glide-compiler"]

api rootProject.ext.dependencies["gson"]
api rootProject.ext.dependencies["rxandroid"]
Expand Down
7 changes: 4 additions & 3 deletions mvp/proguard-pro/proguard-glide.pro
Expand Up @@ -3,7 +3,8 @@


-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
144 changes: 53 additions & 91 deletions mvp/src/main/java/cn/droidlover/xdroidmvp/imageloader/GlideLoader.java
Expand Up @@ -3,64 +3,84 @@
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.widget.ImageView;

import com.bumptech.glide.DrawableTypeRequest;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.RequestManager;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;

import java.io.File;

import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;

/**
* Created by wanglei on 2016/11/28.
*/

public class GlideLoader implements ILoader {

@Override
public void init(Context context) {
public void init(Context mContext) {

}

private RequestManager getRequestManager(Context context) {
if (context instanceof Activity) {
return Glide.with((Activity) context);
}
return Glide.with(context);
}

private void load(Context context, Object model, ImageView target, Options options) {
if (options == null) options = Options.defaultOptions();
RequestOptions requestOptions = new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.placeholder(options.loadingResId)
.error(options.loadErrorResId)
.priority(Priority.HIGH);

getRequestManager(context)
.load(model)
.apply(requestOptions)
.transition(withCrossFade())
.into(target);
}

@Override
public void loadNet(ImageView target, String url, Options options) {
load(getRequestManager(target.getContext()).load(url), target, options);
public void loadNet(Context context, ImageView target, String url, Options options) {
load(context, url, target, options);
}

@Override
public void loadNet(Context context, String url, Options options, final LoadCallback callback) {
DrawableTypeRequest request = getRequestManager(context).load(url);
if (options == null) options = Options.defaultOptions();

if (options.loadingResId != Options.RES_NONE) {
request.placeholder(options.loadingResId);
}
if (options.loadErrorResId != Options.RES_NONE) {
request.error(options.loadErrorResId);
}

wrapScaleType(request, options)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.crossFade()
.into(new SimpleTarget<GlideBitmapDrawable>() {
RequestOptions requestOptions = new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.placeholder(options.loadingResId)
.error(options.loadErrorResId)
.priority(Priority.HIGH);

getRequestManager(context)
.load(url)
.apply(requestOptions)
.transition(withCrossFade())
.into(new SimpleTarget<Drawable>() {

@Override
public void onLoadFailed(Exception e, Drawable errorDrawable) {
super.onLoadFailed(e, errorDrawable);
if (callback != null) {
callback.onLoadFailed(e);
}
public void onLoadFailed(@Nullable Drawable errorDrawable) {
super.onLoadFailed(errorDrawable);
}

@Override
public void onResourceReady(GlideBitmapDrawable resource, GlideAnimation<? super GlideBitmapDrawable> glideAnimation) {
if (resource != null && resource.getBitmap() != null) {
public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
if (resource != null) {
if (callback != null) {
callback.onLoadReady(resource.getBitmap());
callback.onLoadReady(resource);
}
}
}
Expand All @@ -69,18 +89,18 @@ public void onResourceReady(GlideBitmapDrawable resource, GlideAnimation<? super
}

@Override
public void loadResource(ImageView target, int resId, Options options) {
load(getRequestManager(target.getContext()).load(resId), target, options);
public void loadResource(Context context,ImageView target, int resId, Options options) {
load(context, resId, target, options);
}

@Override
public void loadAssets(ImageView target, String assetName, Options options) {
load(getRequestManager(target.getContext()).load("file:///android_asset/" + assetName), target, options);
public void loadAssets(Context context, ImageView target, String assetName, Options options) {
load(context, "file:///android_asset/" + assetName, target, options);
}

@Override
public void loadFile(ImageView target, File file, Options options) {
load(getRequestManager(target.getContext()).load(file), target, options);
public void loadFile(Context context,ImageView target, File file, Options options) {
load(context, file, target, options);
}

@Override
Expand All @@ -102,62 +122,4 @@ public void resume(Context context) {
public void pause(Context context) {
getRequestManager(context).pauseRequests();
}

private RequestManager getRequestManager(Context context) {
if (context instanceof Activity) {
return Glide.with((Activity) context);
}
return Glide.with(context);
}

private void load(DrawableTypeRequest request, ImageView target, Options options) {
if (options == null) options = Options.defaultOptions();

if (options.loadingResId != Options.RES_NONE) {
request.placeholder(options.loadingResId);
}
if (options.loadErrorResId != Options.RES_NONE) {
request.error(options.loadErrorResId);
}

wrapScaleType(request, options)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.crossFade()
.into(target);
}

private DrawableTypeRequest wrapScaleType(DrawableTypeRequest request, Options options) {
if (options != null
&& options.scaleType != null) {
switch (options.scaleType) {
case MATRIX:
break;

case FIT_XY:
break;

case FIT_START:
break;

case FIT_END:
break;

case CENTER:
break;

case CENTER_INSIDE:
break;

case FIT_CENTER:
request.fitCenter();
break;

case CENTER_CROP:
request.centerCrop();
break;
}
}

return request;
}
}
Expand Up @@ -15,15 +15,15 @@ public interface ILoader {

void init(Context context);

void loadNet(ImageView target, String url, Options options);
void loadNet(Context context, ImageView target, String url, Options options);

void loadNet(Context context, String url, Options options, LoadCallback callback);

void loadResource(ImageView target, int resId, Options options);
void loadResource(Context context, ImageView target, int resId, Options options);

void loadAssets(ImageView target, String assetName, Options options);
void loadAssets(Context context, ImageView target, String assetName, Options options);

void loadFile(ImageView target, File file, Options options);
void loadFile(Context context, ImageView target, File file, Options options);

void clearMemoryCache(Context context);

Expand Down
@@ -1,15 +1,15 @@
package cn.droidlover.xdroidmvp.imageloader;

import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;

/**
* Created by wanglei on 2016/12/21.
*/

public abstract class LoadCallback {
void onLoadFailed(Throwable e) {}
void onLoadFailed() {}

public abstract void onLoadReady(Bitmap bitmap);
public abstract void onLoadReady(Drawable drawable);

void onLoadCanceled() {}
}
@@ -1,6 +1,6 @@
package cn.droidlover.xdroidmvp.test;

import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;

Expand All @@ -26,17 +26,16 @@ public void initData(Bundle savedInstanceState) {
int resIds = 0;

ILFactory.getLoader().init(context);
ILFactory.getLoader().loadAssets(imageView, assetPath, null);
ILFactory.getLoader().loadFile(imageView, new File(filePath), null);
ILFactory.getLoader().loadNet(imageView, urlPath, null);
ILFactory.getLoader().loadAssets(context,imageView, assetPath, null);
ILFactory.getLoader().loadFile(context,imageView, new File(filePath), null);
ILFactory.getLoader().loadNet(context,imageView, urlPath, null);
ILFactory.getLoader().loadNet(context, urlPath, null, new LoadCallback() {
@Override
public void onLoadReady(Bitmap bitmap) {
public void onLoadReady(Drawable drawable) {

}

});
ILFactory.getLoader().loadResource(imageView, resIds, null);
ILFactory.getLoader().loadResource(context,imageView, resIds, null);
ILFactory.getLoader().clearMemoryCache(context);
ILFactory.getLoader().resume(context);
ILFactory.getLoader().pause(context);
Expand All @@ -51,7 +50,7 @@ public void run() {

int loadingResId = -1;
int loadErrorResId = -1;
ILFactory.getLoader().loadNet(imageView, urlPath,
ILFactory.getLoader().loadNet(context,imageView, urlPath,
new ILoader.Options(loadingResId, loadErrorResId).scaleType(ImageView.ScaleType.FIT_CENTER));

}
Expand Down

0 comments on commit df79bc0

Please sign in to comment.