Анимация переворачивания карты в PopupWindow или DialogFragment
Я пытаюсь применить анимацию переворачивания карты на ViewGroup внутри PopupWindow
, я использую AnimatorSet
применить анимацию поверх ViewGroup
, Анимация происходит в пределах окна. И часть окна, выходящая за границы окна, обрезается. Любые предложения, чтобы избежать отсечения?
Я нашел решение, но другие решения приветствуются.:)
1 ответ
Я использовал scalX
а также scalY
свойства objectAnimator
, Когда анимация запускается, я уменьшаю окно от значения 0,9 до 0,5 на половину времени анимации. И снова масштабируйте окно от 0,5 до 0,9 для оставшегося времени анимации. При уменьшении размера окна границы окна идеально вписываются в область отсечения во время анимации. Это решило мою проблему. Ниже приведен дополнительный код в card_flip_right_out.xml
из этого примера
<objectAnimator
android:duration="200"
android:propertyName="scaleY"
android:valueFrom="0.9"
android:valueTo="0.5" >
</objectAnimator>
<objectAnimator
android:duration="200"
android:propertyName="scaleX"
android:valueFrom="0.9"
android:valueTo="0.5" >
</objectAnimator>
Ниже код добавлен в card_flip_right_in.xml
<objectAnimator
android:duration="199"
android:propertyName="scaleY"
android:valueFrom="0.5"
android:valueTo="0.9" >
</objectAnimator>
<objectAnimator
android:duration="199"
android:propertyName="scaleX"
android:valueFrom="0.5"
android:valueTo="0.9" >
</objectAnimator>
<objectAnimator
android:duration="1"
android:propertyName="scaleY"
android:startOffset="199"
android:valueTo="1" >
</objectAnimator>
<objectAnimator
android:duration="1"
android:propertyName="scaleX"
android:startOffset="199"
android:valueTo="1" >