我正在尝试在PopupWindow
内部的ViewGroup上应用卡片翻转动画。我正在使用AnimatorSet
在ViewGroup
上应用动画。动画发生在窗口的边界内。超出窗口边界的部分窗口是剪切。有什么建议可以避免剪辑?
我已经找到了解决方案,但欢迎其他解决方案。:)
我使用了objectAnimator
的scalX
和scalY
属性。当动画开始时,我会在一半的动画时间内将窗口从值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" >