10

我正在尝试通过以下方式Flip card在我的应用程序中实现两个活动之间的过渡效果:http: //blog.robert-heim.de/karriere/android-startactivity-rotate-3d-animation-activityswitcher/
但我无法理解上述网站的内容ActivitySwitcher.java和内容。Roatate3dAnimation.java我的应用程序中有两个活动,我想在它们之间显示这种过渡效果。它们是MainActivity.javaAbout_us.java
请参考我的活动解释代码。我还在http://developer.android.com/training/animation/cardflip.html上进行了搜索,但徒劳无功,因为它不适用于活动。谢谢!

4

2 回答 2

25

免责声明:这不是真正的 3D 动画翻转。这只是模仿它,尽管有些人不同意。试试看,如果你喜欢,那就太好了!如果你不这样做,我很抱歉。

在我学习编码的早期,我在实现正确的 3D 动画翻转时遇到了问题,所以我选择了这个,它模拟了它足以满足我的需求,但对每个人都是她/他自己的。要做我所做的,首先确保在你的项目的 res 文件夹下有一个名为 anim 的文件夹。然后您将需要创建两个 xml 文件(我的文件名为 from_middle 和 to_middle)。以下是每个的代码:

from_middle.xml:

<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0" android:toXScale="1.0"
    android:pivotX="50%" 
    android:fromYScale="1.0" android:toYScale="1.0"
    android:pivotY="50%"         
    android:duration="500" />

to_middle.xml:

<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="1.0" android:toXScale="0.0"
    android:pivotX="50%" 
    android:fromYScale="1.0" android:toYScale="1.0"
    android:pivotY="50%"        
    android:duration="500" />

创建这些之后,您只需要一行代码来运行此动画,您应该在开始下一个活动后放置它:

overridePendingTransition(R.anim.from_middle, R.anim.to_middle);

完毕!现在运行它!

于 2013-11-13T17:04:17.047 回答
2

根据 user1672053 的回答,您需要为资源添加一个开始偏移量,该偏移量from_middle.xml等于to_middle.xml动画资源的持续时间。

于 2014-02-19T19:01:23.110 回答