Glied是谷歌推薦使用的加載圖片的框架,它相對於其他的框架有更多的優點;
Glied,加載快但消耗內存高,按照比例緩存和全尺寸緩存,所加載的Bitmap格式ARGB_565
Glide.with(this) 2 .load(url)//加載圖片 3 .placeholder(R.mipmap.ic_launcher)//正在加載時的圖片 4 .error(R.mipmap.ic_launcher)//加載錯誤是的圖片 5 .into(glide_image);
picasso加載速度慢一些,但消耗內存小一點, 全尺寸緩存,每次重新加載時,需要重新繪製.所加載的Bitmap格式ARGB_8888
Picasso.with(this) 2 .load(url)//加載圖片 3 .placeholder(R.mipmap.ic_launcher)//正在加載時的圖片 4 .error(R.mipmap.ic_launcher)//加載錯誤是的圖片 5 .into(glide_image2);
/** 2 * Glide的全尺寸緩存 3 */ 4 public void GlideImage3(String url) { 5 Glide.with(this) 6 .load(url)//加載圖片 7 .placeholder(R.mipmap.ic_launcher)//正在加載時的圖片 8 .error(R.mipmap.ic_launcher)//加載錯誤是的圖片 9 .diskCacheStrategy(DiskCacheStrategy.ALL) 10 .into(glide_image); 11 }
Glide設置圓形圖片
1 /** 2 * Created by joe.xiang on 2016/6/9. 3 */ 4 public class CircleTransform extends BitmapTransformation { 5 6 public CircleTransform(Context context) { 7 super(context); 8 } 9 10 @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { 11 return circleCrop(pool, toTransform); 12 } 13 14 private static Bitmap circleCrop(BitmapPool pool, Bitmap source) { 15 if (source == null) return null; 16 int size = Math.min(source.getWidth(), source.getHeight()); 17 int x = (source.getWidth() - size) / 2; 18 int y = (source.getHeight() - size) / 2; 19 20 // TODO this could be acquired from the pool too 21 Bitmap squared = Bitmap.createBitmap(source, x, y, size, size); 22 Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888); 23 if (result == null) { 24 result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); 25 } 26 Canvas canvas = new Canvas(result); 27 Paint paint = new Paint(); 28 paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP)); 29 paint.setAntiAlias(true); 30 float r = size / 2f; 31 canvas.drawCircle(r, r, r, paint); 32 return result; 33 } 34 35 @Override public String getId() { 36 return getClass().getName(); 37 } 38 }
/** 2 * 通過Glide的TransForMation 自定義圓形圖片的bitmap 3 */ 4 public void RoundImage(String url) { 5 Glide.with(this) 6 .load(url) 7 .asBitmap() 8 .transform(new CircleTransform(this)) 9 .into(glide_image5); 10 }