Android/ImageLoader
提供: 初心者エンジニアの簡易メモ
目次
ImageLoaderとは
ウェブ上の画像をviewに表示させるためのキャッシュ機能付きライブラリ
ダウンロード
公式サイトからuniversal-image-loader-1.9.0.jarをダウンロード
https://github.com/nostra13/Android-Universal-Image-Loader#downloads
インストール
libsにjarを格納 プロパティ/javaのビルドパス/ライブラリ/jar追加からダウンロードしたjarを選択
AndroidManifest.xml
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<!-- Include next permission if you want to allow UIL to cache images on SD card -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
<application android:name="MyApplication">
...
</application>
</manifest>
MyApplicationに初期設定追加
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null)
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.discCacheSize(50 * 1024 * 1024)
.discCacheFileCount(100)
.build();
ImageLoader.getInstance().init(config);
viewにurl画像を設定
imageLoader.displayImage(imageUri, imageView);
urlからbitmap取得
Bitmap bmp = imageLoader.loadImageSync(imageUri);
表示オプション
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub) // resource or drawable
.showImageForEmptyUri(R.drawable.ic_empty) // resource or drawable
.showImageOnFail(R.drawable.ic_error) // resource or drawable
.resetViewBeforeLoading(false) // default
.delayBeforeLoading(1000)
.cacheInMemory(false) // default
.cacheOnDisc(false) // default
.preProcessor(...)
.postProcessor(...)
.extraForDownloader(...)
.considerExifParams(false) // default
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
.bitmapConfig(Bitmap.Config.ARGB_8888) // default
.decodingOptions(...)
.displayer(new SimpleBitmapDisplayer()) // default
.handler(new Handler()) // default
.build();
- オプションをつけてviewにurl画像を設定
ImageLoader.getInstance().displayImage(imageUrl, imageView, options);
- オプションをつけてurlからbitmap取得
ImageSize targetSize = new ImageSize(120, 80); // result Bitmap will be fit to this size Bitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, displayOptions);
画像幅修正
int height = 120; int widht = 100; imageView.setLayoutParams(new LinearLayout.LayoutParams(height, width)); ImageSize targetSize = new ImageSize(height, width); Bitmap bmp = loader.loadImageSync(imageUrl, targetSize, displayOptions); imageView.setImageBitmap(bmp);
画像正方形
int widht = 100; imageView.setLayoutParams(new LinearLayout.LayoutParams(width, width)); imageView.setScaleType(ScaleType.CENTER_CROP); ImageSize targetSize = new ImageSize(width, width); Bitmap bmp = loader.loadImageSync(imageUrl, targetSize, displayOptions); imageView.setImageBitmap(bmp);
画像uri
String imageUri = "http://site.com/image.png"; // from Web String imageUri = "file:///mnt/sdcard/image.png"; // from SD card String imageUri = "content://media/external/audio/albumart/13"; // from content provider String imageUri = "assets://image.png"; // from assets String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)
