Android - 在静态类中使用Universal Image Loader

时间:2016-09-22 16:57:14

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

我可以在静态类中使用Universal Image Loader lib吗?这意味着创建一个图像加载器实例并将其修改为静态。

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

3 个答案:

答案 0 :(得分:3)

<强> ImageLoader.getInstance(); // Get singleton instance 以上行将提供单身人士。你可以调用它然后执行加载 正如doc所示,您可以从github下载sample project。此示例项目显示了如何正确使用此库

答案 1 :(得分: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”属性

在活动中获取实例

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

户外活动

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

您可以参考this博客。

答案 2 :(得分:1)

我建议你使用Glide一个非常漂亮的图像加载器库,我自己也尝试过使用它。

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

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

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