dim*_*suz 6 animation android android-animation
我有一个ImageView
坐在a的页面中,ViewPager
并且假设我想动画它以缩小+在屏幕外的某处飞行,而原始视图仍然存在于寻呼机中,未受影响.
在Android 4.0.3+上创建此类动画的最佳方法是什么?我想使用新的动画框架,而不是旧的动画框架.
我想到的一种方法是使用活动DecorView
:创建ImageView
那里的克隆并做动画,但我觉得这有点hacky - 装饰视图看起来更像隐藏的功能和实现细节.
还有更好的方法吗?
我认为您可以通过将 的所有父项DecorView
设置为 false来绕过使用 a 。这允许您从布局中为 a 制作动画,甚至在其父级(甚至)之外。我主要使用辅助方法来执行此操作:setClipChildren()
ImageView
View
Activity
public static void setClipView(View view, boolean clip) {
if (view != null) {
ViewParent parent = view.getParent();
if(parent instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view.getParent();
viewGroup.setClipChildren(clip);
setClipView(viewGroup, clip);
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以只需像这样使用这个方法ImageView
:
LayoutHelper.setClipView(imageView, false);
Run Code Online (Sandbox Code Playgroud)
要为其View
本身设置动画,您应该使用 Android 3.0 中引入的新动画 API(Honeycomb - API 级别 11)。
这个 DevBytes 视频也与此有些相关。它处理自定义Activity
动画,并创建一个副本到下一个的ImageView
过渡Activity
这基本上与您想要做的事情相同,只是在两个不同的Activities
.