【发布时间】:2014-12-22 11:03:19
【问题描述】:
我正在尝试在 PopupWindow 内的 ViewGroup 上应用卡片翻转动画。我正在使用AnimatorSet 在ViewGroup 上应用动画。动画在窗口范围内发生。超出窗口边界的部分窗口正在剪裁。有什么避免剪裁的建议吗?
我找到了解决方案,但欢迎使用其他解决方案。 :)
【问题讨论】:
我正在尝试在 PopupWindow 内的 ViewGroup 上应用卡片翻转动画。我正在使用AnimatorSet 在ViewGroup 上应用动画。动画在窗口范围内发生。超出窗口边界的部分窗口正在剪裁。有什么避免剪裁的建议吗?
我找到了解决方案,但欢迎使用其他解决方案。 :)
【问题讨论】:
我使用了objectAnimator 的scalX 和scalY 属性。当动画开始时,我将窗口从值 0.9 缩小到 0.5 动画时间的一半。并再次将窗口从 0.5 缩放到 0.9 以获取剩余的动画时间。随着窗口大小的减小,窗口边界在动画期间完全适合剪辑区域。这解决了我的问题。以下是来自this examplecard_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" >
【讨论】: