android3 glide,Glide3.x及4.x加载图片

一、Glide 3.x 加载图片

1. 配置

在app/build.gradle文件当中添加如下依赖:

dependencies {

compile 'com.github.bumptech.glide:glide:3.8.0'

}

2. 加载图片

// 加载图片

Glide.with(MapKitHomeActivity.this).load(imagePath).into(ivShowImg);

// 使用Target来加载显示图片

Glide.with(mContext).load(url).asBitmap().into(new SimpleTarget() {

@Override

public void onResourceReady(Bitmap resource, GlideAnimation super Bitmap> glideAnimation) {

ivBanner.setImageBitmap(resource);

}

});

// 加载圆形图片

Glide.with(context).load(url)

.diskCacheStrategy(DiskCacheStrategy.ALL)

.skipMemoryCache(false)

.error(R.drawable.icon_load_photo)

.placeholder(R.drawable.icon_load_photo) //加载成功前显示的图片

.fallback(R.drawable.icon_load_photo) //url为空的时候,显示的图片

.transform(new CircleCrop(context)).into(info);

CircleCrop.java

public class CircleCrop extends BitmapTransformation {

public CircleCrop(Context context) {

super(context);

}

public CircleCrop(BitmapPool bitmapPool) {

super(bitmapPool);

}

@Override

public String getId() {

return "com.example.glidetest.CircleCrop";

}

@Override

protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {

int diameter = Math.min(toTransform.getWidth(), toTransform.getHeight());

final Bitmap toReuse = pool.get(outWidth, outHeight, Bitmap.Config.ARGB_8888);

final Bitmap result;

if (toReuse != null) {

result = toReuse;

} else {

result = Bitmap.createBitmap(diameter, diameter, Bitmap.Config.ARGB_8888);

}

int dx = (toTransform.getWidth() - diameter) / 2;

int dy = (toTransform.getHeight() - diameter) / 2;

Canvas canvas = new Canvas(result);

Paint paint = new Paint();

BitmapShader shader = new BitmapShader(toTransform, BitmapShader.TileMode.CLAMP,

BitmapShader.TileMode.CLAMP);

if (dx != 0 || dy != 0) {

Matrix matrix = new Matrix();

matrix.setTranslate(-dx, -dy);

shader.setLocalMatrix(matrix);

}

paint.setShader(shader);

paint.setAntiAlias(true);

float radius = diameter / 2f;

canvas.drawCircle(radius, radius, radius, paint);

if (toReuse != null && !pool.put(toReuse)) {

toReuse.recycle();

}

return result;

}

}

二、Glide 4.x 加载图片

1. 配置

在app/build.gradle文件当中添加如下依赖:

dependencies {

compile 'com.github.bumptech.glide:glide:4.2.0'

annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0'

}

2. 使用GlideApp加载图片

1. 新建一个我们自己的模块类MyAppGlideModule

@GlideModule

public class MyAppGlideMoudle extends AppGlideModule {

}

2. 在Android Studio中点击菜单栏Build -> Rebuild Project

神奇的事情发生了,MyAppGlideModule类所在的包名下生成了GlideApp,可以使用这样的语句来加载图片:

// 加载图片

GlideApp.with(MapKitHomeActivity.this).load(imagePath).into(ivShowImg);

// 使用Target来加载显示图片

GlideApp.with(mContext).asBitmap().load(url).into(new SimpleTarget() {

@Override

public void onResourceReady(Bitmap resource, Transition super Bitmap> transition) {

ivBanner.setImageBitmap(resource);

}

});

// 加载圆形图片

RequestOptions requestOptions = RequestOptions.circleCropTransform();

GlideApp.with(context).load(url)

.diskCacheStrategy(DiskCacheStrategy.ALL)

.skipMemoryCache(false)

.error(R.drawable.icon_load_photo)

.placeholder(R.drawable.icon_load_photo) //加载成功前显示的图片

.fallback(R.drawable.icon_load_photo) //url为空的时候,显示的图片

.apply(requestOptions).into(info);

三、Glide 加载图片添加 cookie

GlideUrl url = new GlideUrl(uri, new LazyHeaders.Builder().addHeader("Cookie", "cookie=" + tokenId).build());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值