4

У меня есть галерея, которая использует Android universal image loader. Проблема в том, что изображения только частично показаны, как половина изображения, иногда нет изображения, но иногда изображение отображается целиком.Android универсальный загрузчик изображений, показывающий изображения частично

DisplayImageOptions options = new DisplayImageOptions.Builder() 
              .cacheInMemory() 
              .build(); 
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
              .defaultDisplayImageOptions(options) 
              .threadPoolSize(1) 
              .threadPriority(Thread.MIN_PRIORITY + 3) 
              .denyCacheImageMultipleSizesInMemory() 
              .memoryCacheSize(2 * 1024 * 1024) 
              .enableLogging() 
              .build(); 

imageLoader = ImageLoader.getInstance(); 
imageLoader.init(config); 
imageLoader.handleSlowNetwork(true); 


subImage1 = (ImageView)findViewById(R.id.subImage1); 
subImage2 = (ImageView)findViewById(R.id.subImage2); 

imageLoader.displayImage("http://path/to/image1.webp", subImage1); 
imageLoader.displayImage("http://path/to/image2.webp", subImage2); 

РАСПОЛ

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MyActivity" > 



<ImageView 
    android:id="@+id/subImage1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" /> 

<ImageView 
    android:id="@+id/subImage2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignTop="@+id/subImage1"/> 


</RelativeLayout> 

ПРОБЛЕМА Пример

enter image description here

Что может быть проблема?

+0

Каковы параметры макета для изображений, которые вы используете? –

+0

@Boris Strandjev Я добавил свой макет на мой вопрос – Krivers

ответ

1

Наконец, я сделал несколько тестов и вывод о том, что ImageView в Android версии 4.0 не может корректно отображать webp. Единственное решение, которое я нашел, - показать веб-изображения в webView, который правильно отображает этот тип файла, например. подобный here.

1

У меня была та же проблема

Я считаю, решение, которое вы ищете, находится в этом немного здесь

//Find the correct scale value. It should be the power of 2. 
final int REQUIRED_SIZE=70; 
int width_tmp=o.outWidth, height_tmp=o.outHeight; 
int scale=1; 
while(true){ 
if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE) 
    break; 
width_tmp/=2; 
height_tmp/=2; 
scale*=2; 
} 

Это от линии 99 к линии 108 здесь: https://github.com/thest1/LazyList/blob/master/src/com/fedorvlasov/lazylist/ImageLoader.java

Я связываю это так, чтобы вы могли проверить код из источника и сравнить его с вашим кодом.

Здесь необходимо изменить этот бит: final int REQUIRED_SIZE = 70. Обратите внимание, что это число должно быть в 2 раза. По умолчанию 70, вы получите небольшие изображения и при использовании в приложениях, которые должны отображать большие изображения, они будут выглядеть искаженными. Играйте с этим, пока не удовлетворитесь результатом.

Лично я использую значение final int REQUIRED_SIZE = 512 без каких-либо проблем.

Это должно сделать трюк для вас.

+0

http://stackoverflow.com/questions/14621367/how-to-make-images-larger-in-height-in-lazy-list –

+0

why down Проголосовал? –

+0

Спасибо за предложение, но я думаю, что проблема в том, что ImageView не может полностью поддерживать webp в Android версии 4.0 – Krivers

Смежные вопросы