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)