今天想到了自己畢業設計時候做的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>
複製程式碼
使用的話和上面的是一樣的。
你可以通過以下方式關注我: