Android: одинаковый ландшафтный вид на все действия приложения - PullRequest
0 голосов
/ 14 сентября 2011

Я создаю приложение для Android. Он содержит всего десять мероприятий. Все действия построены для портретного режима. Требование заключается в том, что в ландшафтном режиме всех действий должен отображаться один и тот же эффект прикрытия. Мы можем сделать это с помощью метода onConfigChange, но проблема в том, что при реализации эффекта coverflow каждый раз потребляется много памяти и происходит сбой системы. Может быть, где-то проблема утечки памяти.

Итак, мне интересно, есть ли какая-нибудь простая техника, чтобы система не зависала и имела плавную ориентацию?

Спасибо.

1 Ответ

1 голос
/ 14 сентября 2011

Предотвращение утечек памяти - это подход к созданию вашего приложения.Это просто, когда вы это знаете: http://android -developers.blogspot.com / 2009/01 / avoiding-memory-leaks.html

В двух словах:

  1. Не держись за виды и Drawables.Это не позволяет GC распоряжаться операциями.
  2. Не декодировать растровые изображения при каждом изменении ориентации.Декодируйте их один раз, а затем сохраните их в пользовательском классе Application (по одному на приложение и не разрушаются при изменении ориентации).Вы также можете сделать собственный класс кэша изображений.
  3. Загрузка изображений с их целевым разрешением ( изменить размер при декодировании ) с параметром inSampleSize:

    BitmapFactory.Options options=new BitmapFactory.Options();
    options.inSampleSize = 8;
    Bitmap bitmap=BitmapFactory.decodeStream(inStream,null,options);
    
...