如何在Android的布局XML中将动画附加到对象?

16

我有一个在XML资源中定义的动画,并且我想将该动画附加到视图上。我知道如何手动在代码中执行此操作,但我想知道是否可能在布局声明中直接将该动画附加到视图上。类似这样:

我有一个在XML资源中定义的动画,并且我想将该动画附加到视图上。我知道如何手动在代码中执行此操作,但我想知道是否可能在布局声明中直接将该动画附加到视图上。类似这样:

<ImageView android:animation="@anim/my_anim" />

动画能否在没有任何外部代码调用的情况下自动播放,使用内置的Android SDK是否可能实现(我不是在寻找可以将其作为插入功能添加的外部库)?如果可以,如何实现?

1个回答

16
答案是否定的。您必须在运行时附加动画。但这很容易做到,只需要几行代码即可。例如,从Android文档中提取:
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);

3
谢谢,但我已经知道如何通过代码实现视图动画 :) 我只是好奇是否有一种“全声明”的方式可以在不编写代码的情况下完成它。 - Can Poyrazoğlu
我猜我现在有的问题是为什么?你真正想问的问题是什么?我无法想象写三行代码对你来说是不合理的,所以一定有其他原因。也许我可以为你澄清或帮助你解决真正的问题。 - NoChinDeluxe
3
我并没有说这是不合理的。这很容易,我已经在做了。我只是试图尽可能将逻辑放到声明中,而不是代码后面,并寻求一种将动画从代码移入声明的方法。 - Can Poyrazoğlu
2
好的,答案是否定的,你必须在代码中开始动画。 - NoChinDeluxe
1
我明白了。您能否编辑您的答案,以便在开头清楚地说明“不”,这样我就可以接受它? - Can Poyrazoğlu

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