2014-10-27 4 views
0

Я пытаюсь применить анимацию флип-карты на ViewGroup внутри PopupWindow. Я использую AnimatorSet, чтобы применить анимацию над ViewGroup. Анимация происходит в пределах окна. И часть окна, выходящего из оконных границ, обрезается. Любые предложения, чтобы избежать отсечения?Карт-флип-анимация на PopupWindow или DialogFragment

Я нашел решение, но другие решения приветствуются. :)

ответ

0

Я использовал scalX и scalY свойства objectAnimator. Когда начинается анимация, я уменьшаю окно с 0,9 до 0,5 на половину времени анимации. И снова масштабируйте окно от 0,5 до 0,9 для оставшегося времени анимации. Поскольку размер окна уменьшается, границы окон прекрасно вписываются в область отсечения во время анимации. Это решило мою проблему. Ниже приводится дополнительный код в card_flip_right_out.xml от this example

<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" > 
Смежные вопросы