是否可以在同一活动中更改视图时执行过渡动画?

dam*_*shu 13 android

假设我有2个XML文件,我的活动将根据用户的某些按钮按下setContentView相应的一个.是否可以更改内容视图更改的过渡动画?

到目前为止,我看到super.overridePendingTransition()适用于启动新活动,但是我的示例不会启动新活动,只是更改当前布局中的布局.

Sha*_*dul 33

Mathias Lin对此非常了解.

您始终可以使用Android框架提供的默认股票动画.

下面是一个示例代码:

boolean isFirstXml=evaluatingConditionFunction();
LayoutInflater inflator=getLayoutInflater();
View view=inflator.inflate(isFirstXml?R.layout.myfirstxml:R.layout.myseconxml, null, false);
view.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right));
setContentView(view);
Run Code Online (Sandbox Code Playgroud)

从您拥有父视图的任何活动中调用此方法.

对于自定义动画,您可以访问开发人员文档.继承文档链接.


Mat*_*adt 7

是的,您可以在几乎任何您喜欢的视图上应用动画.只是通过view.startAnimation(animation);

获取相应布局的外部视图组(内容视图)并将动画应用于该视图.根据您想要做的动画类型,可能有意义的是膨胀/加载两个布局但隐藏其中一个然后交换.请说明您的转变类型.

例如:如果进行alpha转换,则在当前布局上运行alphaAnimation,当动画结束时(AnimationListener),将内容视图设置为新布局,并通过另一个alphaAnimation淡化内容.