У меня в настоящее время есть представление в моем приложении для Android, и представление играет покадровую анимацию. Я хочу анимировать представление для увеличения его размера до 150%. Когда я применяю анимацию масштаба к нему, и анимация масштаба завершается, я хочу, чтобы представление осталось в том новом размере для остальной части жизненного цикла действия. К сожалению, прямо сейчас, когда масштаб анимация завершен, снимки представления назад к первоначальному размеру. Как я могу заставить это сохранять новое анимированное преобразование?
Я использую
myView.startAnimation(AnimationUtils.loadAnimation(mContext,R.anim.scaleUp150));
Спасибо!
Убедитесь, что вы добавили следующие атрибуты к корневому элементу в xml анимации:
android:fillAfter="true"
android:fillEnabled="true"
РЕДАКТИРОВАТЬ: ответ Qlimax лучше, но поскольку OP не вернулся, чтобы изменить галочку, и я не могу удалить принятый ответ, я скопирую его сюда: просто установите fillAfter = true fillEnabled = true
Мой первоначальный ответ (который работает, но по сравнению с ним несколько смешон):
Чтобы все работало должным образом после анимации, по крайней мере, согласно этой ветке , вам нужно будет написать onAnimationEnd
, и там вручную настройте «реальные» (до преобразования) границы вашего представления, чтобы они соответствовали конечному результату масштабной анимации.
Вообще-то, поскольку используемая вами анимация, похоже, встроена в фреймворк Android, я не уверен, что вы можете что-то в ней изменить.
Однако вы можете создать свою собственную анимацию, следуя примеру в документации. И вам придется поставить android:fillAfter="true", если вы хотите, чтобы масштабирование сохранялось после окончания анимации.