Можно ли применить разную продолжительность к разным ограничениям в ConstraintSet с помощью MotionLayout? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь реализовать анимацию для экрана входа в систему, в которой два EditText для имени пользователя и пароля анимируются за пределами экрана и возвращаются в исходное положение с различной продолжительностью. Как и в следующем эта ссылка !. Я могу оживить это частично. Но я не могу воспроизвести замедленное движение типа анимации. Я пытался использовать переход Easing, но эффект не похож.

<Transition
    motion:constraintSetStart="@id/scene_login_start"
    motion:constraintSetEnd="@id/scene_login_end"
    motion:duration="350">

    <KeyFrameSet>
        <KeyPosition
            motion:target="@id/editText_username"
            motion:keyPositionType="pathRelative"
            motion:framePosition="1"
            motion:transitionEasing="accelerate" />

        <KeyPosition
                motion:target="@id/editText_password"
                motion:keyPositionType="pathRelative"
                motion:framePosition="1"
                motion:transitionEasing="linear" />

        <KeyPosition
            motion:target="@id/editText_password"
            motion:keyPositionType="pathRelative"
            motion:framePosition="50"
            motion:transitionEasing="decelerate" />

        <KeyPosition
                motion:target="@id/editText_password"
                motion:keyPositionType="pathRelative"
                motion:framePosition="70"
                motion:transitionEasing="decelerate" />

    </KeyFrameSet>
</Transition>

Можно ли добиться такого типа анимации, используя Motionlayout?

1 Ответ

0 голосов
/ 25 мая 2019

Вы можете управлять им с помощью KeyPosition. В приведенном ниже примере анимация для textview не будет воспроизводиться до кадра 40, затем перейдет к 50 анимации в кадре 50 и завершит анимацию в кадре 75. Если вы не укажете последний кадр, анимация обычно завершится в кадре 100

    <KeyFrameSet>
        <KeyPosition
            motion:percentY="0"
            motion:percentX="0"

            motion:framePosition="40"
            motion:target="@id/textview" />
        <KeyPosition
            motion:percentY="0.5"
            motion:percentX="0.5"
            motion:framePosition="50"
            motion:target="@id/textview" />

        <KeyPosition
            motion:percentY="1"
            motion:percentX="1"
            motion:framePosition="75"
            motion:target="@id/textview" />
    </KeyFrameSet>
       <ConstraintSet>

       </ConstraintSet>
</MotionScene>
...