2014-10-28 39 views
0

我试图在活动之间制作动画/转换,但我无法使其完美和完美。我找不到任何帮助指南。 你能告诉我如何创建一个ActivityOptions tranistion,像这样: http://3.bp.blogspot.com/-dadidlU3muU/VE6og4Ra_BI/AAAAAAAAA8E/uVCWrYMetGI/s400/herotransition.gif英雄转换不起作用Android棒棒糖

一步一步? 谢谢。

+0

你看这里吗? http://developer.android.com/training/material/animations.html – tyczj 2014-10-28 18:45:42

+0

是的,但没有任何帮助。我添加了所需的所有内容,并进行了转换,但ChangeBounds()转换效果不佳,因为进入新的活动转换只是从屏幕边缘打开应用程序,而不是调整图像大小。 @tyczj – user3184899 2014-10-28 18:57:58

回答

1

需要两个共享的元素:

  1. 卡时(整个卡)从将被共享列表视图和 映射到详细视图活动的根视图。您可以使用ChangeBounds将 转换。
  2. 来自列表视图的ImageView将被共享并映射到详细视图活动中的ImageView。您可以使用具有ChangeBounds和ChangeImageTransform的TransitionSet。

这意味着,您的活动的选项将是这个样子:

ActivityOptions.makeSceneTransition(YourActivity.this, Pair.create(yourCardViewInstance, "cardView"), Pair.create(yourImageViewInstance, "imageView") 

最后,确保你的第二个活动的意见具有完全符合您ActivityOptions过渡名称。例如。

<FrameLayout 
    android:transitionName="cardView"> 
    <ImageView 
     android:transitionName="ImageView"> 
... 
+0

谢谢。我尝试过这个。 imageView的工作,但部分与RelativeLayout使用LayoutInflater连接到另一个RelativeLayout,我得到: “java.lang.IllegalArgumentException:幻影视图必须由ViewGroup父” 什么是错? – user3184899 2014-10-31 20:23:20

+0

尝试用另一个ViewGroup在第二个活动中包装RelativeLayout,例如 ... – klmprt 2014-11-01 15:48:06