Glide的加载优化

2019-01-17  本文已影响16人  BKQ_SYC
option = RequestOptions()
                .centerCrop()
                .placeholder(R.mipmap.fours_head)
                .error(R.mipmap.fours_head)
                .skipMemoryCache(true)
                .diskCacheStrategy(DiskCacheStrategy.DATA)
option = RequestOptions()
                .centerCrop()
                .placeholder(R.mipmap.fours_head)
                .error(R.mipmap.fours_head)
                .skipMemoryCache(true)
                .override(60, 60)
                .diskCacheStrategy(DiskCacheStrategy.DATA)
@Override
public void applyOptions(Context context, GlideBuilder builder) {
   // 设置磁盘缓存大小,
  builder.setDiskCache(InternalCacheDiskCacheFactory(context, "glide", 1024 * 1024 * 30))

   // 要用默认值作为基准,然后加以调整
   // 具体设置如下
   int myMemoryCacheSize = (int) (1.2f * memoryCacheSize);
   int myBitmapPoolSize = (int) (1.2f * bitmapPoolSize);
   mBuilder.setMemoryCache(new LruResourceCache(myMemoryCacheSize));
   mBuilder.setBitmapPool(new LruBitmapPool(myBitmapPoolSize));

   // 获取设备内存情况
   ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE)
   if (null != activityManager) {
      ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo()
      memoryInfo.getMemoryInfo(memoryInfo)
      builder.setDecodeFormat(memoryInfo.lowMemory ? DecodeFormat.PREFER_RGB_565 : DecodeFormat.PREFER_ARGB_8888)
   }
}
@Override
public void onTrimMemory(int level) {
   super.onTrimMemory(level)
   if (level == TRIM_MEMORY_UI_HIDDEN) {
      Glide.get(this).clearMemory()
   }
   Glide.get(this).trimMemory(level)
}

@Override
public void onLowMemory() {
   super.onLowMemory()
   Glide.get(this).clearMemory()
}
上一篇 下一篇

猜你喜欢

热点阅读