【问题标题】:Android - Using Universal Image Loader in static classAndroid - 在静态类中使用通用图像加载器
【发布时间】:2016-09-22 16:57:14
【问题描述】:

我可以在静态类中使用通用图像加载器库吗?意思是创建一个图像加载器实例并将其修改为静态。

在不同的多个片段和类中使用这个库的最佳方法是什么?如何改进缓存功能?

【问题讨论】:

    标签: android android-image universal-image-loader


    【解决方案1】:

    ImageLoader.getInstance(); // Get singleton instance 上面的行将提供一个单例。你可以调用它然后执行你的加载 正如doc 所示,有一个sample project,您可以从github 下载。这个示例项目展示了如何正确使用这个库

    【讨论】:

      【解决方案2】:

      使用 Universal Image Loader 的最佳方式是在您的应用启动时创建一个实例,然后在整个应用中获取该实例

      这里是 App 类

       public class App extends Application {
      
          public ImageLoader imageLoader;
      
          public ImageLoader getImageLoader() {
              return imageLoader;
          }
      
          @Override
          public void onCreate() {
              super.onCreate();
      
              // UNIVERSAL IMAGE LOADER SETUP
              DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                      .resetViewBeforeLoading(true)
                      .cacheOnDisk(true)
                      .cacheInMemory(true)
                      .displayer(new FadeInBitmapDisplayer(300))
                      .build();
      
              ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
                      .defaultDisplayImageOptions(defaultOptions)
                      .memoryCache(new WeakMemoryCache())
                      .diskCacheSize(100 * 1024 * 1024)
                      .build();
      
              this.imageLoader = ImageLoader.getInstance();
              imageLoader.init(config);
      
              // END - UNIVERSAL IMAGE LOADER SETUP
          }
      }
      

      确保AndroidManifest.xml 中的应用标签有android:name=".App" 属性

      要获取实例,在 Activity 中

      ImageLoader imageLoader = ((App)getApplicationContext()).getImageLoader();
      

      外部活动

      ImageLoader imageLoader = ((App)context.getApplicationContext()).getImageLoader();
      

      您可以参考this博客。

      【讨论】:

        【解决方案3】:

        我推荐你使用 Glide 一个非常不错的图像加载器库,我自己已经尝试过并且很高兴使用它。

        这是您需要阅读和实现图像缓存和高效使用 lib 的内容

        https://futurestud.io/tutorials/glide-getting-started

        官方链接 https://github.com/bumptech/glide

        【讨论】:

        • 我可以使用 glide 从远程源获取视频缩略图吗?
        • @TunahanBayındır 是的,您可以使用 glide 加载 url,它会加载 url 并将其缓存在内存中,从而节省大量内存
        • @darpan-s-raut 我的意思是,它可以将远程视频的第一帧作为缩略图吗?
        • @TunahanBayındır 检查此链接futurestud.io/tutorials/glide-thumbnails
        • @TunahanBayindir 如果有帮助,请为答案投票
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-23
        • 2017-04-07
        • 2013-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-01
        相关资源
        最近更新 更多