/ / Android - O deslocamento de início da animação não está funcionando corretamente - android, animação

Android - O deslocamento inicial de animação não está funcionando corretamente - Android, animação

Estou tentando fazer uma animação que deslizeda posição atual para o centro da tela e depois virar. Tenho cada componente móvel funcionando corretamente, mas depois que todos são colocados em um conjunto com o deslocamento inicial, a animação não inicia até que esse deslocamento termine e ele executa todas as animações Qualquer ajuda sobre isso é muito apreciada.

slide_down.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Slide down -->
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="1000"/>

<!-- Set alpha to fully opaque -->
<alpha
android:fromAlpha="0.8"
android:toAlpha="1.0"
android:duration="1000" />

<!-- Flip image once it"s in the center -->
<!-- ***** HERE IS THE only offset I set ****** -->
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:pivotX="50%"
android:fromYScale="1.0"
android:toYScale="1.0"
android:startOffset="1000"
android:duration="200" />
</set>

código de chamada

Animation anim = AnimationUtils.loadAnimation(getActivity(), slideDirection);
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
}

public void onAnimationRepeat(Animation animation) {
}

public void onAnimationEnd(Animation animation) {
mCallBack.categorySelected(view.getId());
}
});

view.clearAnimation();
view.startAnimation(anim);

Obrigado, Dman

Respostas:

2 para resposta № 1

As compensações da animação sempre são calculadas desde o início da animação. Se você deseja que suas animações sejam reproduzidas uma a uma, é necessário calcular as compensações.

A seguir, a tradução será reproduzida por 1 segundo e, em seguida, alfa por mais um segundo, seguida da escala por 200ms -

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Slide down -->
<translate
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="1000"/>

<!-- Set alpha to fully opaque -->
<alpha
android:fromAlpha="0.8"
android:toAlpha="1.0"
android:startOffset="1000"
android:duration="1000" />

<!-- Flip image once it"s in the center -->
<!-- ***** HERE IS THE only offset I set ****** -->
<scale
android:fromXScale="0.0"
android:toXScale="1.0"
android:pivotX="50%"
android:fromYScale="1.0"
android:toYScale="1.0"
android:startOffset="2000"
android:duration="200" />
</set>