Я использую библиотеку Universal Image Loader для выбора нескольких изображений для отображения фотографий из галереи по умолчанию в сети в GridView, она отображает все мои изображения, но очень медленно.Android Image Image Loader медленный, игнорирует высоту и ширину ImageView
Я попытался выполнить их документы и настроить все для более быстрого отображения изображений. В какой-то момент предлагается установить фиксированный размер изображения для моего ImageView, я делаю это (110dp x 100dp), но он по-прежнему загружается медленно, и в журнале я вижу, что мои изображения имеют размер 220 x 240 дп. Почему он игнорирует мои настройки размера?
Чтобы быть ясным, я хотел бы оптимизировать библиотеку UIL с фиксированным размером изображения, как показано в документации, а не подгонять изображения в мое изображение.
элемент изображения внутри GridView:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="100dp"
android:layout_height="100dp"
android:gravity="center"
android:padding="1dp" >
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@+id/frmQueue"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imgQueue"
android:layout_width="110dp"
android:layout_height="120dp"
android:contentDescription="@string/app_name"
android:src="@drawable/no_media" />
</FrameLayout>
<ImageView
android:id="@+id/imgQueueMultiSelected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="2dp"
android:layout_marginTop="2dp"
android:background="@drawable/on_focus_checkbox"
android:contentDescription="@string/app_name"
android:gravity="center"
android:scaleType="center"
android:visibility="gone" />
</FrameLayout>
</LinearLayout>
настройки экземпляра библиотеки:
private void initImageLoader() {
try {
String CACHE_DIR = Environment.getExternalStorageDirectory().getAbsolutePath() + "/.temp_tmp";
new File(CACHE_DIR).mkdirs();
File cacheDir = StorageUtils.getOwnCacheDirectory(getBaseContext(), CACHE_DIR);
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder().cacheOnDisc(true).imageScaleType(ImageScaleType.IN_SAMPLE_INT).bitmapConfig(Bitmap.Config.RGB_565).build();//.cacheInMemory(true)
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(getBaseContext()).threadPoolSize(3).defaultDisplayImageOptions(defaultOptions).discCache(new UnlimitedDiscCache(cacheDir)).memoryCache(new WeakMemoryCache());
ImageLoaderConfiguration config = builder.build();
imageLoader = ImageLoader.getInstance();
imageLoader.init(config);
//L.disableLogging();
} catch (Exception e) {}
}
android: scaleType = "fitXY" добавить это свойство в свой ImageView – Android
@AnkitKumar это не влияет на способ изменения размера изображения UIL. –
Я столкнулся с такой же проблемой раньше, но решил ее только этим. – Android