public void init(Context context) {
   try {
     if (!ImageLoader.getInstance().isInited()) { // 未初始化则初始化
       // 默认缓存路径
       String cache_path = "";
       cache_path += PreferencesUtils.getString(context, "sys_path_sd_card");
       cache_path += PreferencesUtils.getString(context, "sys_path_app_folder");
       cache_path += PreferencesUtils.getString(context, "sys_path_cache");
       File cache = new File(cache_path);
       if (!cache.exists()) cache.mkdirs();
       // --
       ImageLoaderConfiguration.Builder config_builder =
           new ImageLoaderConfiguration.Builder(context);
       config_builder.threadPoolSize(3);
       config_builder.diskCacheSize(700 * 1024 * 1024);
       config_builder.diskCache(new UnlimitedDiscCache(cache));
       config_builder.diskCacheFileNameGenerator(new Md5FileNameGenerator());
       config_builder.tasksProcessingOrder(QueueProcessingType.FIFO);
       config_builder.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000));
       // config_builder.writeDebugLogs();
       // --
       // ImageLoader.getInstance().destroy();
       ImageLoader.getInstance().init(config_builder.build());
     }
   } catch (Exception e) {
   }
 }
 @Provides
 @Singleton
 public ImageLoader imageLoader(SharedPreferencesWrapper preferences, MediaDownloader downloader) {
   final ImageLoader loader = ImageLoader.getInstance();
   final ImageLoaderConfiguration.Builder cb = new ImageLoaderConfiguration.Builder(application);
   cb.threadPriority(Thread.NORM_PRIORITY - 2);
   cb.denyCacheImageMultipleSizesInMemory();
   cb.tasksProcessingOrder(QueueProcessingType.LIFO);
   // cb.memoryCache(new ImageMemoryCache(40));
   cb.diskCache(createDiskCache("images", preferences));
   cb.imageDownloader(new TwidereImageDownloader(application, downloader));
   L.writeDebugLogs(BuildConfig.DEBUG);
   loader.init(cb.build());
   return loader;
 }