ImageLoad 圖片框架 快取到SD卡 載入圓形圖片
阿新 • • 發佈:2018-12-20
建立一個自定義類,繼承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); } }