卡活动之间翻转animation

如何做活动之间的卡片翻转animation

http://developer.android.com/training/animation/cardflip.html

上述链接切换静态布局..我想做一个CardFlip之间的2个活动有一个dynamic的布局..感谢在… .. 🙂

我有两个活动

  1. 包含产品细节的Main_Activity (说Galaxy S3)
  2. 查询用户search请求的Search_Activity

Main_Activity有一个searchbutton。 当您点击button时, Main_Activity视图必须卡片翻转至Search_Activity 。 同样,一旦用户select一个产品,它应该Card-Flip副词。

我试图按照上面提到的URL来实现。但是它只是在使用XML定义的两个静态布局之间翻转。 我在ActionBar实现search

Solutions Collecting From Web of "卡活动之间翻转animation"

从我得到的东西你不能完全相同的卡片翻转活动之间。
但,
因为您可能已经知道您需要overridePendingTransition()以便在活动之间进行animation转换( doc here )。 现在,你只需要一个animation资源来完成这个任务。 我用这些:
fade_in.xml

 <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="200" android:fromXScale="0.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:startOffset="200" android:toXScale="1.0" android:toYScale="1.0" /> <alpha android:duration="1" android:fromAlpha="0.0" android:startOffset="200" android:toAlpha="1.0" /> </set> 

fade_out.xml

 <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="200" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.0" android:toYScale="1.0" /> <alpha android:duration="1" android:fromAlpha="1.0" android:startOffset="200" android:toAlpha="0.0" /> </set> 

请注意,旋转animation只能在给定的轴心位置(x,y坐标)上围绕Z轴旋转(即进入屏幕的旋转animation),所以不能用它来绕Y轴旋转。
我所做的就是在保持高度的同时围绕中间放大宽度,从而创造出活动幻觉的高度。 另外,当宽度为0时,进入和退出活动分别淡入淡出,因此看起来正在切换。 animation中翻转的scaleduration属性必须与两个animation的所有startOffset属性相同。
不完美,但为我做了诡计。
希望能帮助到你。

在接受的答案中(只是将新的活动从屏幕中间扩展到两边),不可能在活动之间进行卡片翻转animation。

原因是,当调用overridePendingTransition() ,您只是将animation应用于开始活动 ,而不是当前打开的活动。

在连接的(非常好的)教程中,总共有4个animation,每个转换有2个animation(一个是进入屏幕的片段,另一个是退出屏幕的片段)。

下面是我如何解决这个问题,并在我的两个活动之间做了一个翻转卡animation,但是对于我的活动内容来说,这是非常自定义的。 对于某些情况下,我的第一个活动包含一个全屏图像,我只是想图像翻转到相同大小的另一个视图。

  1. 通过调用overridePendingTransition(0, 0)禁用自动窗口animation,
  2. 在第二个活动的绑定中,为新活动传递足够的信息来重新创build视图(对于我来说,图像的大小和位置以及要加载的资源)
  3. 在你的新视图上设置一个onPreDrawListener,在这个视图中你重新创build你的父活动的视图(在我的情况下是图像)
  4. 你只需要翻转2个视图。 为此我重写了发布的Flip Card片段转换教程中的代码,并使用ObjectAnimator将其重写为代码。
  5. 重写onBackPressed()方法以相反的顺序运行相同的animation

有了这个机制,你可以完成任何自定义的转换,因为你只是在视图之间进行animation处理。 以下是有关该技术的更多信息: https : //www.youtube.com/watch?v = ihzZrS69i_s#t = 1001