Potrzebuję załadować duży obraz o wymiarach 2450 x 2450 pikseli.Android: Universal Image Loader Załaduj duży obraz
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(url,
ImageConfig.getImageOptions());
Problemem jest na niskim urządzenie końcowe (telefon mniej niż 1 GB RAM), dostaje z pamięci wyjątku.
To jest moje DisplayImageOptions
public static DisplayImageOptions getImageOptions() {
DisplayImageOptions.Builder options = new DisplayImageOptions.Builder();
options.delayBeforeLoading(10)
//The reason I'm using ARGB_8888 because I need to load bitmap without losing it's quality
.bitmapConfig(Bitmap.Config.ARGB_8888)
.imageScaleType(ImageScaleType.NONE)
//I'm not using disk or memory cache
.cacheOnDisk(false)
.cacheInMemory(false);
return options.build();
}
Próbowałem dodać wielkość docelowego na podstawie uchwały urządzenia, ale to nie działa, załadowane mapy bitowej nadal ma 2450 x 2450 pikseli wymiary.
int height = orientation == Configuration.ORIENTATION_PORTRAIT ?
displaymetrics.heightPixels : displaymetrics.widthPixels;
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUri,
new ImageSize(height, height), ImageConfig.getImageOptions());
Próbowałem zmienić imageScaleType do ImageScaleType.EXACTLY
, załadowaną bitmapę zmienionym rozmiarze do 1225 x 1225 pikseli, na wszystkich urządzeń, muszę dostać oryginalne wymiary wysokiej urządzenia końcowego, i przeskalowane wymiary niskim urządzeniu końcowym.
Głównym problemem jest wielkość docelowa nie działa
Każdy pomysł, w jaki sposób należy załadować obraz, zwłaszcza na niskim urządzenia końcowego?
Czemu nie wykorzystujących pamięć podręczną –
ponieważ nie jest to konieczne, nawet podczas korzystania z pamięci podręcznej nadal wysiadł z wyjątkiem pamięci na urządzeniu o niższym końcu – user2341387
Zmień rozmiar obrazu podczas ładowania. Całkiem standardowe. – greenapps