Android View Animation Performance LAG на более старых устройствах [закрыто]Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android View Animation Performance LAG на более старых устройствах [закрыто]

Сообщение Anonymous »

У меня есть игра для Android, где я оживляю прямоугольные виды, перемещающиеся справа налево через экран. Анимация выполняется с использованием метода Android View.Animate () с TranslationX. Прямоугольники динамически создаются и добавляются в ограничение. Я уже пробовал несколько оптимизаций, включая: < /p>

Инициализация просмотра и настройка фоновой настройки за пределами анимации
loop < /p>
< /li>
Использование view.setlayertyp /> Попробуйте объект -анаматор вместо ViewPropertyAnimator < /p>
< /li>
Сокращение количества анимированных представлений < /p>
< /li>
< /ul>
Несмотря на все это, и анимация значительно отстает от Devices (например, SAM. Мощное устройство (Samsung S22 Ultra). С другой стороны, игра работает плавно на современных устройствах в нормальных условиях. < /P>
Вот соответствующая часть кода анимации. < /P>

Код: Выделить всё

        //Animate view element
if (currentTimeSlot == arrayList_GameEventRectangles.get(currentElement).getStartingTimeSlot()) {
arrayList_GameEventRectangles.get(currentElement).getBackground().setAlpha(255);

View rectangle = arrayList_GameEventRectangles.get(currentElement);
int rectangleWidth = rectangle.getWidth();

float distanceToCover_current = widthDisplay + rectangleWidth;
float distanceToCover_normalizedObject = widthDisplay + 20;
double ratioDistanceDifference = distanceToCover_current /distanceToCover_normalizedObject;

int numberOfMillisecondsUntilTheMiddleOfTheScreen_Level1 = 8000;
long durationForTheAnimation = (long)(numberOfMillisecondsUntilTheMiddleOfTheScreen_Level1 * speedMultiplicatorLevel [currentLevel - 1] * ratioDistanceDifference);

arrayList_GameEventRectangles.get(currentElement).animate().setDuration(durationForTheAnimation).translationX(widthDisplay*(-1)).setInterpolator(new LinearInterpolator()).start(); }
< /code>
На самом деле у меня есть много прямоугольника, которые анимируются, но даже сокращение их до 1 не решает проблему. So the core problem lies in the animation call arrayList_GameEventRectangles.get(currentElement).animate().setDuration(durationForTheAnimation).translationX(widthDisplay*(-1)).setInterpolator(new LinearInterpolator()).start();
My questions are:
Существуют ли какие -либо проверенные подходы к улучшению гладкости такого представления анимаций на более старых устройствах? И есть ли у вас какие -либо другие идеи или лучшие практики для исполнительских анимаций в играх Android с несколькими движущимися представлениями? Даже при анимировании одного прямоугольника, перемещающегося справа налево через экран, анимация отстает на менее мощных устройствах. Вид прост - просто простой прямоугольник - поэтому это не должно быть вычислительно интенсивным. Есть ли способ оптимизировать или улучшить производительность этой основной анимации в Android?

Подробнее здесь: https://stackoverflow.com/questions/797 ... er-devices
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»