Ich muss großes Bild laden, das 2450 x 2450 Pixel Abmessungen hat.Android: Universal Image Loader Load großes Bild
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(url,
ImageConfig.getImageOptions());
Das Problem ist, auf Low-End-Gerät (Telefon mit weniger als 1 GB RAM), erhielt der Speicher Ausnahme.
Das ist mein 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();
}
Ich versuchte Zielgröße hinzuzufügen, basierend auf Geräteauflösung, aber es funktioniert nicht, geladen Bitmap hat noch 2450 x 2450 Pixel Dimensionen.
int height = orientation == Configuration.ORIENTATION_PORTRAIT ?
displaymetrics.heightPixels : displaymetrics.widthPixels;
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUri,
new ImageSize(height, height), ImageConfig.getImageOptions());
ich versuchte imageScaleType zu ImageScaleType.EXACTLY
, geladen Bitmap bis 1225 x 1225 Pixel, bei dem Gerät verkleinerte mich ändern, muß I ursprüngliche Abmessungen für High-End-Gerät, und die Größe veränderten Abmessungen für Low-End-Gerät zu erhalten.
Das Hauptproblem ist Zielgröße nicht funktioniert
Jede Idee, wie soll ich das Bild geladen werden, vor allem für Low-End-Gerät?
Warum verwenden Sie nicht Cache –
Da es nicht nötig ist, auch wenn der Cache mit immer noch Ausnahme von Speicher auf Low-End-Gerät – user2341387
Größe ändern Sie das Bild beim Laden. Ziemlich Standard. – greenapps