Как повысить производительность ViewFlipper/ViewAnimator

Я использую ViewAnimator (родительский класс ViewFlipper), чтобы сделать какую-нибудь интерактивную книгу. Иерархия примерно такая:

<ViewAnimator>
  <include layout="@layout/p0" />
  <include layout="@layout/p1" />
  <include layout="@layout/p2" />
  ...
</ViewAnimator>

Так что страницы книги находятся внутри ViewAnimator. Каждая страница имеет FrameLayout с несколькими слоями анимированных ImageViews, TextViews, Button... что оказалось слишком много. Отображение новой страницы книги через viewAnimator.showNext() может занять несколько секунд. Всё это время мы проводим в ImageView.onDraw() -Traceview.

-Улучшит ли что-нибудь любая компоновка , альтернативная ViewAnimator (ViewPager, другие реализации ViewGroup...)?

-В есть ли способ предзагрузить виды, которые ViewFlipper/ViewAnimator/другой покажет следующим? (чтобы следующая страница книги всегда была готова и счастлива в памяти)

-Я буду использовать Canvas или GLSurfaceView? (не могу использовать фреймворк анимации)

-Я застрял... можете ли вы помочь?

6
задан slipbull 8 September 2011 в 08:39
поделиться