Я использую библиотеку Android-Universal-Image-Loader для загрузки/кэширования удаленных изображений и долгое время искал источник, пытаясь найти способ получить исходное изображение размер (ширина и высота) для моего ImageLoadingListener.Универсальный загрузчик изображений получить исходный размер изображения
Образец кода, приведенный ниже, просто дает вам представление о том, что я пытаюсь сделать.
protected class ViaImageLoadingListener implements ImageLoadingListener {
final SelectableImageView selectableImageView ;
protected ViaImageLoadingListener(SelectableImageView selectableImageView) {
this.selectableImageView = selectableImageView;
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
selectableImageView.setImageBitmap(loadedImage);
// loadedImage.getWeight() will not return the original
// dimensions of the image if it has been scaled down
selectableImageView.setOriginalImageSize(width, height);
selectableImageView.invalidate();
}
Я попытался расширить класс ImageDecoder и класс ImageLoader найти окольный путь к связывающей декодер (из которого я могу получить исходный размер изображения в методе #prepareDecodingOptions
) на мой пользовательском ImageLoadingListener. Но объект конфигурации является закрытым, а поля (включая декодер) недоступны из подклассов (и в любом случае они чувствуют себя слишком хакерским способом решения проблемы).
Я пропустил простой «встроенный» способ получения исходного размера изображения, не теряя при этом преимущества масштабирования/управления памятью UIL?
IMAGESIZE и EXIF все еще защищен, не публичный, и я использую 1.8.6. И зачем создавать новую instacne из ImageFileInfo при возврате, что может быть неправильным, если вернуть 'info'? – xmen
Кажется, я ошибся. Я скоро опубликую v1.8.7-SNAPSHOT с необходимыми изменениями. – NOSTRA