1. 程式人生 > >ImageLoad 圖片框架 快取到SD卡 載入圓形圖片

ImageLoad 圖片框架 快取到SD卡 載入圓形圖片

建立一個自定義類,繼承Application,重寫onCreat方法,載入完一下的方法以後必須去
AndroidManifest.xml 中的<application> 裡面新增 name (
android:name=".MyApplication"
)屬性,引用自定義的MyApplication 類,還需要申請INTENET和SDcard的讀和寫的許可權

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        File file = new File(Environment.getExternalStorageDirectory().getPath() + "/pictrues0714");
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(100, 100)//設定圖片壓縮的大小尺寸
                .memoryCacheSize(2 * 1024 * 1024)//設定圖片的緩衝大小
                .threadPoolSize(3)//設定執行的執行緒個數
                .threadPriority(1000)//設定執行緒的優先順序
//                .diskCacheFileCount(100)//設定載入的圖片個數
                .diskCacheSize(50 * 1024 * 1024)//設定載入圖片的總大小,他和載入圖片個數可以二選其一
                .diskCache(new UnlimitedDiskCache(file))//設定圖片緩衝的路勁
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//設定圖片緩衝的名字,防止名字相同
                .build();//最後把它創建出來

        ImageLoader.getInstance().init(build);
    }

} 然後在MainActivity中設定如下

public class MainActivity extends AppCompatActivity {

    private ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        img = (ImageView) findViewById(R.id.img);

        String path = "http://cdn.duitang.com/uploads/blog/201308/18/20130818150526_Ru2Bk.thumb.600_0.png";

        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//設定圖片是否支援緩衝
                .cacheOnDisk(true)//設定sdcard是否支援緩衝
                .displayer(new CircleBitmapDisplayer())//設定圓形圖片
//              .displayer(new RoundedBitmapDisplayer(20))//設定圖片圓角
		//載入這三個showImage的方法可用避免ListView載入的時候圖片錯位問題
.showImageForEmptyUri(R.mipmap.ic_empty)//載入圖片為空的時候顯示這個圖片 .showImageOnFail(R.mipmap.ic_error)//請求失敗的時候顯示這個圖片 .showImageOnLoading(R.mipmap.loading)//正在載入的時候顯示的圖片 .build(); ImageLoader.getInstance().displayImage(path, img, options);
    }
}