joh*_*ncc 36 animation android android-activity
我想要实现的是覆盖启动活动动画.
动画应该给人留下旧活动位于新活动之上的印象,然后向下滑动并离开屏幕以显示新活动.我已经尝试了多种方式,比如使用overridePendingTransition(startAnim, exitAnim)
但问题是它们都在同一时间轴中生成动画.因此,overridePendingTransition(R.anim.hold, R.anim.exit_slide_down);您永远不会看到退出动画,因为新活动位于顶部.这可以使用框架实现吗?

joh*_*ncc 31
实际上,我android:zAdjustment在动画文件中找到了一个属性.
如果我把android:zAdjustment="bottom"在hold.xml(屏幕2),并android:zAdjustment="top"在push_down_out.xml(屏幕1),那么我可以得到想要的效果.
这绕过了z顺序问题(我认为这是一个动画时序的问题,所以我正在吠叫错误的树).
约翰
Rom*_*iel 30
我一直在尝试在示例项目中解决您的解决方案,并且我使用此代码:
用以下方法调用动画:
startActivity(new Intent(this, Activity2.class));
overridePendingTransition(R.anim.push_down_in,R.anim.push_down_out);
Run Code Online (Sandbox Code Playgroud)
R.anim.push_down_in:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="-100%p" android:toYDelta="0" android:duration="300"/>
</set>
Run Code Online (Sandbox Code Playgroud)
R.anim.push_down_out:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="300"/>
</set>
Run Code Online (Sandbox Code Playgroud)
适合我的解决方案:
R.anim.exit_slide_down
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:zAdjustment="top">
<translate android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="600" />
</set>
Run Code Online (Sandbox Code Playgroud)
...然后
Intent intent = new Intent(activity, SecondActivity.class);
startActivity(intent);
activity.overridePendingTransition(0, R.anim.exit_slide_down);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25242 次 |
| 最近记录: |