Android - 视图入场动画

4
如何为特定的View添加进场动画?我知道如何构建动画,但我想知道如何让它在View第一次绘制到屏幕上时运行。感谢所有提供帮助的人! 注:所涉及的View可以是TextView或ImageView。

答案可能会因视图类型而异,您是指小的TextView吗?还是全屏FragmentTransaction转换?请尽量更精确。 - TommySM
2个回答

3
你可以设置布局属性。
android:animateLayoutChanges="true"

在父布局中,因此所有的操作,如将子视图的可见性从VISIBLE更改为GONE,都会被动画化。或者如果您需要某种类型的动画 - 只需创建动画并在正确的时间使用它(例如屏幕创建时,或发生导致视图出现的某些操作时)。

这将使其动画化,但它不会根据他的自定义动画进行动画化。它将使用SDK的默认动画。但如果这是他想要的,那么这是一个很好的解决方案。 - cj1098
我实际上有一个自定义动画,我的理解是我需要在onCreateView()之后的某个时刻注入我的动画(与片段一起工作),是否有任何后续方法可以使它看起来像视图第一次滑入屏幕?还是有推荐的生命周期方法来处理这种情况? - user3690467
我不确定,可以尝试在onCreateView或onStart中进行设置。 - Yaroslav

0
你可以通过编程创建视图,然后对其进行动画处理。我以TextView为例进行说明。
TextView tv = new TextView(context);
tv.startAnimation(yourAnimation);

在调用setContentView之后,这两行代码需要被调用,或者(如果在片段中)在onCreateView()return view后调用。

如果您需要为该视图设置属性,则还需要以编程方式设置它们。例如:

tv.setTypeFace(null, TypeFace.BOLD);

将您的TextView字体设置为粗体。

还有其他方法可以实现这一点,例如使视图设置为隐藏或不可见,然后将其动画化为可见状态。(给人第一次加载的效果)


为什么不以同样的方式动画化充气的视图? - Yaroslav
在片段的情况下,我应该重写哪个方法才能在onCreateView返回视图后设置动画? - user3690467

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接