Android 编程下设置 Activity 切换动画
為 Activity 設(shè)置切換動(dòng)畫(huà)
我們知道,我們可以在 AndroidManifest.xml 文件中,通過(guò) android:theme 屬性設(shè)置 Activity 的主題。主題中定義了關(guān)于 Activity 外觀的很多特性。同時(shí),主題中還可以定義 Activity 的切換動(dòng)畫(huà)。這是應(yīng)用 Activity 切換動(dòng)畫(huà)的一種方法。下面講解一下如何通過(guò)主題來(lái)設(shè)置 Activity 間的切換動(dòng)畫(huà)。
定義包含動(dòng)畫(huà)的 Activity 主題
res/values/styles.xml,很簡(jiǎn)單,就是使用 windowAnimationStyle 這個(gè)屬性,指定切換動(dòng)畫(huà)的style即可。
<style name="AnimActivityTheme"><item name="android:windowAnimationStyle">@style/FeelyouWindowAnimTheme</item> </style>定義切換動(dòng)畫(huà) style
res/values/styles.xml
<style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity"><item name="android:activityOpenEnterAnimation">@anim/in_from_left</item><item name="android:activityOpenExitAnimation">@anim/out_from_right</item><item name="android:activityCloseEnterAnimation">@anim/in_from_right</item><item name="android:activityCloseExitAnimation">@anim/out_from_left</item> </style>注意需要繼承自?@android:style/Animation.Activity。具體這4個(gè)屬性什么意思呢?假設(shè)我們有 2 個(gè) Activity,分別是 A1 和 A2:
- 當(dāng)我們從 A1 啟動(dòng) A2 時(shí),A1 從屏幕上消失,這個(gè)動(dòng)畫(huà)叫做?android:activityOpenExitAnimation
- 當(dāng)我們從 A1 啟動(dòng) A2 時(shí),A2 出現(xiàn)在屏幕上,這個(gè)動(dòng)畫(huà)叫做?android:activityOpenEnterAnimation
- 當(dāng)我們從 A2 退出回到 A1 時(shí),A2 從屏幕上消失,這個(gè)叫做?android:activityCloseExitAnimation
- 當(dāng)我們從 A2 退出回到 A1 時(shí),A1 出現(xiàn)在屏幕上,這個(gè)叫做?android:activityCloseEnterAnimation
結(jié)合上面我講的情況,在腦海中想象一下,再結(jié)合屬性的名字,就很容易理解了!
定義具體動(dòng)畫(huà)文件
這里的動(dòng)畫(huà)可以是透明度、位移、縮放之類(lèi)的任何動(dòng)畫(huà),我這里以位移來(lái)舉例。當(dāng)我們 A1 啟動(dòng) A2 時(shí),我希望 A1 從右邊平移退出屏幕(out_from_right),A2 從左邊平移進(jìn)入屏幕(in_from_left)。當(dāng)我們從 A2 退出回到 A1 時(shí),我希望 A2 從左邊平移退出屏幕(out_from_left),A1 從右邊平移進(jìn)入屏幕(in_from_right)
下面我貼一下4個(gè)具體的動(dòng)畫(huà)的 xml 文件:
anim/out_from_right.xml
<?xml version="1.0" encoding="utf-8"?> <!-- author:Remex Huang website:feelyou.info --> <translate xmlns:android="http://schemas.android.com/apk/res/android"android:duration="500"android:fromXDelta="0"android:fromYDelta="0"android:toXDelta="100%p"android:toYDelta="0" ></translate>anim/in_from_left.xml
<?xml version="1.0" encoding="utf-8"?> <!-- author:Remex Huang website:feelyou.info --> <translate xmlns:android="http://schemas.android.com/apk/res/android"android:duration="500"android:fromXDelta="-100%p"android:fromYDelta="0"android:toXDelta="0"android:toYDelta="0" ></translate>anim/out_from_left.xml
<?xml version="1.0" encoding="utf-8"?> <!-- author:Remex Huang website:feelyou.info --> <translate xmlns:android="http://schemas.android.com/apk/res/android"android:duration="500"android:fromXDelta="0"android:fromYDelta="0"android:toXDelta="-100%p"android:toYDelta="0" ></translate>anim/in_from_right.xml
<?xml version="1.0" encoding="utf-8"?> <!-- author:Remex Huang website:feelyou.info --> <translate xmlns:android="http://schemas.android.com/apk/res/android"android:duration="500"android:fromXDelta="100%p"android:fromYDelta="0"android:toXDelta="0"android:toYDelta="0" ></translate>應(yīng)用到對(duì)應(yīng) Activity
AndroidMenifest.xml
<activityandroid:name="info.feelyou.demo.A1"android:theme="@style/AnimActivityTheme" > </activity> <activityandroid:name="info.feelyou.demo.A2"android:theme="@style/AnimActivityTheme" > </activity> 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Android 编程下设置 Activity 切换动画的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML框架分析及应用
- 下一篇: 什么是低代码?