圖片加載框架大合集

去年用Android-Universal-Image-Loader(UIL)時好開心,那時候還是Eclipse的,今天發現,再也不用你和你了、、、

本篇主要介紹四個圖片加載框架,可以在Github上自行搜索,分別是glide、fresco、picasso和UIL,喜歡程度,由左到右

glide

https://github.com/bumptech/glide

今天運行了示例源碼,真心不錯,看什麼時候也細細分析源碼來寫些文章

  • build.gradle
repositories {
    mavenCentral()
}

dependencies {
    compile 'com.github.bumptech.glide:glide:3.6.1'
    compile 'com.android.support:support-v4:23.1.1'
}
  • 代碼
Glide.with(context).load(url).placeholder(R.mipmap.ic_launcher).into((ImageView) view);

fresco

https://github.com/facebook/fresco
http://fresco-cn.org/docs/image-requests.html#_

這個也很不錯,很值得研究,但還是用Glide,它跟其他三個有點不一樣,用了自定義的SimpleDraweeView來作爲容器顯示

  • build.gradle
dependencies {
    compile 'com.facebook.fresco:fresco:0.8.0+'
}
  • 代碼
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}

DraweeController draweeController = Fresco.newDraweeControllerBuilder().setUri(url).build();
((SimpleDraweeView) view).setController(draweeController);

picasso

https://github.com/square/picasso
http://square.github.io/picasso/

  • build.gradle
    compile 'com.squareup.picasso:picasso:2.5.2'
  • 代碼
Picasso.with(context).load(url).placeholder(R.mipmap.ic_launcher).into((ImageView) view);

UIL

https://github.com/nostra13/Android-Universal-Image-Loader

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        initImageLoader(this);
    }

    public static void initImageLoader(Context context) {
        ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
        config.threadPriority(Thread.NORM_PRIORITY - 2);
        config.denyCacheImageMultipleSizesInMemory();
        config.diskCacheFileNameGenerator(new Md5FileNameGenerator());
        config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
        config.tasksProcessingOrder(QueueProcessingType.LIFO);
        config.writeDebugLogs(); // Remove for release app

        // Initialize ImageLoader with configuration.
        ImageLoader.getInstance().init(config.build());
    }
}

ImageLoader.getInstance().displayImage(url, (ImageView) view);

最後

不要忘記添加網絡權限

<uses-permission android:name="android.permission.INTERNET"/>

本篇用途:

  • 引導
  • 快速查找

源碼下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章