我目前正在根据 Material 规范设计制作动画,现在我想启用原点动画,如下所示:
我怎样才能制作 Lollipop 前的动画?有没有办法在 Lollipop 之前的设备中做到这一点?
最佳答案
我已经实现了这一点,即创建基于 XML 的方法并将其应用到您的自定义主题。
创建anim/anim_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:fillAfter="false"
android:startOffset="200"
android:duration="200"
android:pivotX = "100%"
android:pivotY = "100%"
/>
<translate
android:fromYDelta="50%"
android:toYDelta="0"
android:startOffset="200"
android:duration="200"
/>
</set>
然后创建anim/anim_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:fillAfter="false"
android:duration="200"
android:pivotX = "100%"
android:pivotY = "100%"
/>
<translate
android:fromYDelta="0"
android:toYDelta="50%"
android:duration="200"
/>
</set>
此动画源从屏幕右下角弹出一个窗口或对话框 fragment 。修改pivotX
和pivotY
来改变原点的位置
在 style.xml
中定义此 Windows 动画
<style name="InOut.Window" parent="@android:style/Animation.Activity">
<item name="android:windowEnterAnimation">@anim/anim_in</item>
<item name="android:windowExitAnimation">@anim/anim_out</item>
</style>
最后将此动画应用于您要创建的自定义主题的所有窗口。
<style ....>
...
<item name="android:windowAnimationStyle">@style/InOut.Window</item>
</style>
关于java - 原点动画android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452501/