Android 이미지를 로딩/캐싱하기 위해 Android-Universal-Image-Loader 라이브러리를 사용하고 원본 이미지를 검색하는 방법을 찾기 위해 원본을 통해 파고 들었습니다 크기 (너비 및 높이) ImageLoadingListener.Universal Image Loader 원래 이미지 크기 얻기
아래 샘플 코드는 내가하려는 일에 대한 아이디어 만 제공합니다.
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();
}
내 사용자 정의 ImageLoadingListener에 디코더 (있는 나는 #prepareDecodingOptions
방법 원본 이미지의 크기를 얻을 수 있습니다) 연결에 라운드에 대한 방법을 찾기 위해 ImageDecoder 클래스와하여 ImageLoader 클래스를 확장 노력했다. 그러나 구성 객체는 private이며 필드 (디코더 포함)는 하위 클래스에서 액세스 할 수 없습니다 (어쨌든 문제를 해결하는 지나치게 고질적 인 방법처럼 느껴짐).
UIL의 스케일링/메모리 관리의 이점을 잃지 않고 원본 이미지 크기를 얻는 간단한 "내장"방식을 간과 했습니까?
imageSize 및 EXIF은 아직 공개되지 보호하고 나는 1.8.6를 사용하고 있습니다. 그리고 ImageFileInfo를 반환 할 때 새로운 instacne을 만드는 것이 왜'info'를 반환하면 잘못 될 수 있습니까? – xmen
내가 실수 한 것 같습니다. 곧 필요한 변경 사항과 함께 v1.8.7-SNAPSHOT을 게시 할 예정입니다. – NOSTRA