package com.stone.glide;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.MemoryCategory;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.engine.cache.MemorySizeCalculator;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
/**
* author : stone
* email : aa86799@163.com
* time : 16/3/14 23 18
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acti_main);
ImageView iv = (ImageView) findViewById(R.id.iv_img);
config();
String url = "";
// Glide.with(this).load(R.drawable.aa).into(iv);
loadImage(iv, R.drawable.aa);
}
private void config() {
MemorySizeCalculator calculator = new MemorySizeCalculator(this); //默认由该类计算内存缓存size
int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); //自动计算出的默认缓存size
int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); //bitmap pool size
Glide.get(this).setMemoryCategory(MemoryCategory.HIGH); //动态设置内存缓存size
}
private void loadImage(ImageView iv, int resid) {
Glide
.with(this)
// .load(url)
.load(resid)
// .fitCenter() //缩放在view中,图的中心点与view的中心点匹配 全图可见
.centerCrop() //缩放,一边贴view的边,就停止
.placeholder(R.mipmap.ic_launcher) //占位图
// .error(resid) //错误图
.crossFade() //淡入
.override(1000, 800) //图片尺寸
.transform(new BitmapTransformation(this) {
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
Bitmap bitmap = Bitmap.createBitmap(toTransform, 0, 300, outWidth, outHeight-300);
return bitmap;
}
@Override
public String getId() {
return "aa";
}
})
.diskCacheStrategy(DiskCacheStrategy.RESULT) //ALL=SOURCE+RESULT SOURCE原图尺寸 RESULT所以转化后的尺寸 NONE不缓存
.into(iv);
}
}