gpt4 book ai didi

android - 如何为 'cloned' 制作动画,现有 android View 的重复版本

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:10 24 4
gpt4 key购买 nike

我有一个 ImageView 位于 ViewPager 的页面中,假设我想为其设置动画以按比例缩小 + 飞到屏幕外的某个地方,而原始 View 仍然存在于寻呼机中,未改变

在 Android 4.0.3+ 上创建此类动画的最佳方法是什么?我想使用新的动画框架,而不是旧的。

我想到的一种方法是使用 Activity 的 DecorView:在那里创建 ImageView 的克隆并制作动画,但我觉得这有点 hacky -装饰 View 看起来更像是一个隐藏的功能和一个实现细节。

有没有更好的方法?

最佳答案

我认为您可以通过在 ImageView 的所有父级上将 setClipChildren() 设置为 false 来绕过使用 DecorView。这允许您从布局中为 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);
}
}
}

所以只需在您的 ImageView 上使用此方法,如下所示:

LayoutHelper.setClipView(imageView, false);

要为 View 本身设置动画,您应该使用 Android 3.0(Honeycomb - API 级别 11)引入的新动画 API。

This DevBytes video也与此有些关系。它处理自定义 Activity 动画,它们创建一个重复的 ImageView 来动画从一个 Activity 到下一个的过渡。这基本上与您尝试做的相同,只是在两个不同的 Activities 中。

关于android - 如何为 'cloned' 制作动画,现有 android View 的重复版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25569621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com