0

У нас есть изображение в формате B64, мы хотим использовать это изображение в качестве загружаемого изображения в Universal Image Loader, а лучшее изображение не загружается с URL-адреса. Поэтому мы создаем растровое изображение из этого URL-адреса в b64 и преобразуем его в BitmapDrawable. Результат показан хорошо, если я делаю:Универсальный загрузчик изображений и растровое изображение

imageView.setImageDrawable(bitmapDrawable) 

Но, на DisplayImageOptions, если я установил, что bitmapDrawable как изображение на загрузке, изображение не показывается. Я делаю следующее:

final DisplayImageOptions imageOptions = mDisplayImageOptionsDefaultBuilder. 
     .showImageOnLoading(bitmapDrawable) 
     .showImageOnFail(bitmapDrawable) 
     .showImageForEmptyUri(bitmapDrawable) 
     .build() 

Как вы можете видеть, я устанавливаю растровую вытяжку не только как изображение при погрузке, а также изображений, когда не удается тоже (как мы не хотим, чтобы изображение, чтобы изменить в случай ошибки при загрузке лучшего изображения с URL-адреса). Результатом этого является то, что извлечение растрового изображения никогда не отображается. Что мы делаем не так?

UPDATE: После отладки, что происходило, я видел, что проблема не в рисовании растровых изображений, она поддерживается и работает нормально. Проблема заключалась в том, что я использую варианты отображения по умолчанию конструктор (mDisplayImageOptionsDefaultBuilder), чем в какой-то момент сделал:

final DisplayImageOptions imageOptions = mDisplayImageOptionsDefaultBuilder. 
     .showImageOnLoading(loadingResource) 
     .showImageOnFail(errorResource) 
     .showImageForEmptyUri(errorResource) 
     .build() 

Так что есть ошибка в Универсальной Image Loader, потому что теперь я создаю варианты отображения изображения с:

.showImageOnLoading(bitmapDrawable) 

Другое «решение» сделать:

final DisplayImageOptions imageOptions = mDisplayImageOptionsDefaultBuilder. 
     .showImageOnLoading(0) 
     .showImageOnLoading(loadingResource) 
     .showImageOnFail(errorResource) 
     .showImageForEmptyUri(errorResource) 
     .build() 

но внутренне он сохраняет, что есть ресурс хранится, так что моя вытяжка не показана, но сохраненная ресурс вместо этого. Создание нового DisplayImageOptionsBuilder сработало для меня, но было бы неплохо, если бы showImageOnLoading был установлен с возможностью рисования, тогда старый ресурс автоматически очищался.

Заранее спасибо.

+0

Is Bitmap поддерживается UIL ?? –

+0

Я думаю, что это не так, но возможно. Вот почему мы преобразуем растровое изображение в растровое растение, поэтому оно должно поддерживаться (поскольку imageview.setImageDrawable успешно показывает bitmapDrawable) – FVod

+0

Это все еще растровое изображение, а изображениеView - это часть Android, которая поддерживает BitmapDrawable –

ответ

0

УИЛ поддерживает только следующие схемы:

"h t t p://site.com/image.png" // from Web 
"file:///mnt/sdcard/image.png" // from SD card 
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail) 
"content://media/external/images/media/13" // from content provider 
"content://media/external/video/media/13" // from content provider (video thumbnail) 
"assets://image.png" // from assets 
"drawable://" + R.drawable.img // from drawables (non-9patch images) 

Используйте эти схемы.

+0

Я не понимаю, поэтому выталкиваемый из растрового изображения не поддерживается, но извлекаемый из ресурсов? – FVod

+0

Поддерживаются ресурсные ресурсы –

+0

Спасибо. Я обновил сообщение, поддерживается bitmap drawable, проблема в том, что UIL использует старый загрузочный ресурс вместо использования растрового рисунка. – FVod

0

Универсальный погрузчик Изображения также обеспечивает использование фона functionality.Please проверить ниже студентку за него: -

Здесь Uri путь изображения папки или URL изображения.

imageLoader.loadImage(YOUR_URL, new SimpleImageLoadingListener() { 
@Override 
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
    super.onLoadingComplete(imageUri, view, loadedImage); 
    layout.setBackgroundDrawable(new BitmapDrawable(loadedImage)); 
    } 
}); 
Смежные вопросы