исключение imageview OutOfMemoryError: попытка кэшировать изображения с измененным размером, чтобы избежать исключения - PullRequest
0 голосов
/ 29 июля 2011

Я прочитал все ветки outofmemoryerror и понимаю, что пытаюсь изменить размер изображения мамни. Я храню эти изображения на моем сервере в максимальном размере 250x250. Я пытаюсь загрузить их в список. Я реализовал систему кеша, и она прекрасно работает. Проблема в том, что я кэширую размер изображения с сервера, и я все еще делаю изменение размера каждый раз, когда извлекаю его из кэша.

Я хочу изменить размер изображения, прежде чем поместить его в кэш. Я использую XML для изменения размера изображения в списке.

<ImageView android:id="@+id/img_user" android:layout_width="100dp" 
        android:layout_height="100dp" 
        android:src="@drawable/noimgsmall"
        android:scaleType="fitCenter"/>

Мой список адаптеров, где я помещаю изображение в кэш. Проблема в том, что я не знаю на данный момент размер изображения.

Drawable cachedImage = null;
                cachedImage = imageLoader.loadImage(
                        store.getLogoUrl(),
                        new ImageThreadLoader.ImageLoadedListener() {
                            public void imageLoaded(Drawable imageBitmap) {
                                View itemView = parent.getChildAt(position -
                                        ((ListView) parent).getFirstVisiblePosition());
                                if (itemView == null) {
                                    return;
                                }
                                ImageView img = (ImageView)
                                itemView.findViewById(R.id.img_user);
                                if (img == null) {
                                    return;
                                }
                                img.setImageDrawable(imageBitmap);
                            }
                        }
                );
                logoImageView.setImageDrawable(cachedImage);

Как определить размер изображения для кэширования?

1 Ответ

1 голос
/ 04 августа 2011

В итоге я изменил размеры изображений до фактических масштабированных размеров и затем кешировал.Больше никаких проблем с памятью.Изменяйте размер Aviod так, как это необходимо в просмотре списка.

...