#java #android #animation
#java #Android #Анимация
Вопрос:
У меня есть кнопка, и я хочу сделать анимацию спуска. Я сделал это, но функциональность осталась в предыдущей позиции (например, кнопка перемещается, но если я нажму на нее, она не сработает, но если я нажму на ее предыдущую позицию, она будет работать)
Animation logbtn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.logbtnanim);
button.startAnimation(logbtn);
И код анимации таков.
PS Parent — это макет ограничения.
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate
android:fromYDelta="0"
android:toYDelta="100"
android:duration="1000"/>
</set>
Комментарии:
1. почему бы не использовать метод animate класса view? Вы работаете в Android Studio?
2. Привет! Есть отличная статья, в которой описаны простые анимации. Пожалуйста, проверьте это: medium.com/@yasmineayad /. …
3. @MehranBehbahani Не могли бы вы объяснить более подробно, пожалуйста?
4. принятый ответ — это именно то, что я имел в виду
Ответ №1:
Прежде всего, вам не нужен тег AnimatorSet, если у вас есть только одна анимация. Это используется, если вы хотите воспроизвести несколько анимаций вместе.
Во-вторых, вы используете TranslateAnimation, который не анимирует свойство Buttons, он только перемещает пиксели на экране, поэтому после анимации Android по-прежнему считает, что view находится в старой позиции, поэтому он все еще доступен там.
Я предлагаю сделать это в коде Java, используя ViewPropertyAnimator что—то вроде :
button.animate().translationY(...f).duration(1000);
Или ObjectAnimator, который немного более гибкий, поскольку вы также можете сделать это в xml.
Комментарии:
1. Большое вам спасибо, это именно то, что мне нужно.