Ответ 1
В вашем файле анимации xml
вы можете использовать атрибут android:startOffset
:
android:startOffset int. The amount of milliseconds the animation delays after start() is called.
В моем приложении я собираюсь установить альфа после одной анимации. Как будто:
hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
menuLayout.startAnimation(hideMenu);
menuLayout.setVisibility(View.GONE);
Но я хочу установить задержку в 1 секунду до того, как Alpha установит View. потому что из-за этого я не могу видеть анимацию этого макета. Итак, как это возможно?
Спасибо.
В вашем файле анимации xml
вы можете использовать атрибут android:startOffset
:
android:startOffset int. The amount of milliseconds the animation delays after start() is called.
Не можете ли вы использовать
android: startOffset int. Количество миллисекунд анимации задержка после запуска().
в вашей анимации xml?
Смотрите документацию по ресурсам анимации.
Предположим, что вы используете метод view .animate()
, вы можете установить начальное смещение:
view.animate().x(100)
.setDuration(5000)
.setStartDelay(1000);
Обработчик - хорошая техника для достижения этого.
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
view.startAnimation(animation);
}
}, 1000);
В вашем случае вы можете просто сделать это
hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
hideMenu.setStartOffset(1000);
menuLayout.startAnimation(hideMenu);
menuLayout.setVisibility(View.GONE);
В этом случае вы можете управлять динамическим значением времени начала из активности