今天想到了自己毕业设计时候做的app,里面主页上面的搜索框用到了一个PopupWindow来实现,我就琢磨这在给他加上一个动画,当时真的是什么都不懂,囫囵吞枣的就拿来用了,现在又大概找了两种动画效果来实现,现在记录下。
一、淡入、淡出动画
在res文件下面建立一个叫anim的文件夹。
-
在anim文件下面建立两个xml文件,分别为:
- push_bottom_in.xml(淡入效果)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="200" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
- push_bottom_out.xml(淡出效果)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="200" android:fromAlpha="1.0" android:toAlpha="0.0" /> </set>
参数解释:
- duration
设置完成动画需要的时间
- fromAlpha
动画开始时的透明度
- toAlpha
动画结束时候的透明度
- 在res文件夹下面的values文件夹下面的styles.xml里面加入以下代码:
<style name="AnimBottom" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@anim/push_bottom_in</item>
<item name="android:windowExitAnimation">@anim/push_bottom_out</item>
</style>
AnimBottom
就是该动画的名字,在需要设置的地方直接调用R.style.AnimBottom
就可以使用该动画了。
二、弹出动画
步骤和上面的一样,
anim下面:
- inuptodown.xml(弹入)
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromYDelta="-100%"
android:toYDelta="0" />
</set>
- outdowntoup.xml(弹出)
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromYDelta="0"
android:toYDelta="-100%" />
</set>
styles.xml中:
<style name="AnimationFade">
<item name="android:windowEnterAnimation">@anim/inuptodown</item>
<item name="android:windowExitAnimation">@anim/outdowntoup</item>
</style>
使用的话和上面的是一样的。
- 我的博客:博客传送门