在常规Android视图上平滑动画

在常规Android视图上平滑动画,android,animation,Android,Animation,我目前有一个应用程序,有常规的按钮和小部件布局。在此基础上,我想画一些动画火花和粒子以及其他响应事件的东西,因此我在FrameLayout中使用另一个视图来绘制动画。问题是我想不出一个办法让它平稳地运动。我尝试了几种选择: SurfaceView:由于它占据屏幕的方式,你在SurfaceView后面看不到任何东西,因此背景是完全黑色的 覆盖查看.onDraw并调用无效():这几乎可以工作,但无效并不是很快重新绘制的可靠方法,因此运动非常急促 Animationframework:使用Trans

我目前有一个应用程序,有常规的按钮和小部件布局。在此基础上,我想画一些动画火花和粒子以及其他响应事件的东西,因此我在
FrameLayout
中使用另一个
视图来绘制动画。问题是我想不出一个办法让它平稳地运动。我尝试了几种选择:

  • SurfaceView
    :由于它占据屏幕的方式,你在
    SurfaceView
    后面看不到任何东西,因此背景是完全黑色的
  • 覆盖
    查看.onDraw
    并调用
    无效()
    :这几乎可以工作,但无效并不是很快重新绘制的可靠方法,因此运动非常急促
  • Animation
    framework
    :使用
    TranslateAnimation
    进行测试,似乎比使用
    onDraw()
    要平滑一些,但动画设计为在特定的持续时间内运行,我想无限期地绘制

任何人都知道使其中一个正常工作的技巧,或者完全不同的东西吗?

动画肯定可以永远运行——尝试XML属性
android:repeatCount=“infinite”
(如果您用XML定义TranslateAnimation(或者用Java定义
setRepeatCount(Animation.infinite)
)。是的,但这只会导致插值时间从0永远循环到1。我不想永远循环同一个动画。我正在使用Android 2.1,并在某个地方读到,在这个版本中,一些动画通常是不稳定的-如果有人有任何证据支持这一点,那么我很乐意接受。动画肯定可以运行混响——尝试XML属性
android:repeatCount=“infinite”
(如果您用XML定义TranslateAnimation(或者用Java定义
setRepeatCount(Animation.infinite)
).是的,但这只会导致插值时间从0永远循环到1。我不想永远循环同一个动画。我正在使用Android 2.1,并在某个地方读到一些动画在这个版本中通常是不稳定的-如果有人有任何证据支持这一点,我很乐意接受。