Как я могу анимировать представление в Android и иметь его, остаются в новом положении/размере?

У меня в настоящее время есть представление в моем приложении для Android, и представление играет покадровую анимацию. Я хочу анимировать представление для увеличения его размера до 150%. Когда я применяю анимацию масштаба к нему, и анимация масштаба завершается, я хочу, чтобы представление осталось в том новом размере для остальной части жизненного цикла действия. К сожалению, прямо сейчас, когда масштаб анимация завершен, снимки представления назад к первоначальному размеру. Как я могу заставить это сохранять новое анимированное преобразование?

Я использую

myView.startAnimation(AnimationUtils.loadAnimation(mContext,R.anim.scaleUp150));

Спасибо!

80
задан RonU 26 April 2015 в 21:52
поделиться

3 ответа

Убедитесь, что вы добавили следующие атрибуты к корневому элементу в xml анимации:

android:fillAfter="true" 
android:fillEnabled="true"
148
ответ дан 24 November 2019 в 09:45
поделиться

РЕДАКТИРОВАТЬ: ответ Qlimax лучше, но поскольку OP не вернулся, чтобы изменить галочку, и я не могу удалить принятый ответ, я скопирую его сюда: просто установите fillAfter = true fillEnabled = true

Мой первоначальный ответ (который работает, но по сравнению с ним несколько смешон):

Чтобы все работало должным образом после анимации, по крайней мере, согласно этой ветке , вам нужно будет написать onAnimationEnd , и там вручную настройте «реальные» (до преобразования) границы вашего представления, чтобы они соответствовали конечному результату масштабной анимации.

2
ответ дан 24 November 2019 в 09:45
поделиться

Вообще-то, поскольку используемая вами анимация, похоже, встроена в фреймворк Android, я не уверен, что вы можете что-то в ней изменить.
Однако вы можете создать свою собственную анимацию, следуя примеру в документации. И вам придется поставить android:fillAfter="true", если вы хотите, чтобы масштабирование сохранялось после окончания анимации.

1
ответ дан 24 November 2019 в 09:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: