2011-02-09 6 views
0

Мы заметили, что когда вы добавляете Android-представления с анимацией вида (ничего сложного, просто AlphaAnimation и TranslateAnimation) поверх GLSurfaceView, анимация работает медленно (т.е. вы видите много застревание.) Я вызываю pause() в GLSurfaceView, и я считаю, что подтвердил (установив точки останова), что вызовы GL draw не попадают во время анимации, поэтому я не уверен, где медленность исходит из.Android-анимация в верхней части GLSurfaceView медленная

Кто-нибудь знает об этом? Я знаю, что на iPhone это также было проблемой, но было исправлено некоторое обновление ОС, чтобы исправить эту проблему. Это короткие анимации просмотра (например, You Win!), Так что это не самая худшая вещь в мире, но было бы неплохо, если бы было какое-то обходное решение.

Причина, по которой мы не выполняем анимации в GL, заключается в том, что они должны иметь возможность запускать любую активность в нашей игре, и не все наши действия имеют GLSurfaceViews.

Наконец, если это имеет значение, мы я с помощью модифицированного источника GLSurfaceView от Replica Island http://code.google.com/p/replicaisland/

ответ

4

Опираясь на вершине GLSurfaceView медленно, поэтому анимация выглядит хорошо. Вы вынуждаете фреймворк выполнять больше работы, чтобы определить, какая часть видимости поверхности видна.

Вы должны действительно подумать о том, чтобы делать эти анимации внутри поверхности, когда вы используете поверхностный вид.

Альтернативой является размещение анимации в маленьком окне над вашей деятельностью.

+0

Под маленьким окном, вы имеете в виду порождение другого действия с окном диагонального размера? В этом случае код чертежа делает что-то более быстрое? –

+0

Не создавайте активность, просто окно (используя WindowManager.) –

Смежные вопросы