问题场景: 如何实现Activity从左下角进入, 然后按其中某个button, 退出到左下角?
1. 调用动画的方式.
有2种方式. 一是在xml文件里指定activity的theme, 二是在startActivity和finish函数之后调用 overridePendingTransition(int enterAnim, int exitAnim);
由于我的代码里activity的theme已经指定, 因此选取了第二种方式
2. 动画.
使用了两种动画,指定左下角的关键代码是android:pivotX=15%, android:pivotY=95%.
代码如下:
activity进入动画 <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="300" android:fromAlpha="0" android:toAlpha="1.0" /> <scale android:duration="300" android:fromXScale="0" android:fromYScale="0" android:pivotX="15%" android:pivotY="95%" android:toXScale="1.0" android:toYScale="1.0" /> </set>
activity退出动画 <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="300" android:fromAlpha="1.0" android:toAlpha="0" /> <scale android:duration="300" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="15%" android:pivotY="95%" android:toXScale="0" android:toYScale="0" /> </set>
3. 注意点
在startActivity之后调用了 overridePendingTransition(int enterAnim, int exitAnim), 发现退出时没有动画效果. 解决方法是在finish函数之后也调用 overridePendingTransition(int enterAnim, int exitAnim).
重复调用两次,感觉像是分别指定了进入动画和退出动画.
时间: 2024-10-01 01:18:21