是否可以将 android 应用程序的背景制作成类似 gif 的动画背景?

Is it possible to make the background of an android app into a animated background like a gif?

我的意思不是将 gif 制作成背景只是移动的背景。提前致谢。感谢任何帮助。

GIF 不能像人们习惯的那样在 Android 框架上工作。 不要使用 GIF,请尝试以下方法来制作背景动画:

  1. 获取对您要对其背景进行动画处理的小部件的引用。例如TextView tv;
  2. 删除内容,只显示背景。 tv.setText("")
  3. 为您的视图设置自定义背景。 tv.setBackground("Background here")
  4. 为您的视图设置动画tv.setAnimation(myAnimation)
  5. 为您的视图添加动画效果 tv.startAnimation();

好了。官方文档中有很多关于动画的例子和资源。

Android 不支持 GIF。作为解决方法,Android 提供 Animation List/AnimationDrawable。您需要将 GIF 转换为单独的帧 [.png 文件]。

这个 GIF 可以分解成帧:

将它们保存为 frame01.png、frame02.png 等,并创建一个动画列表 XML 文件,例如 progress_animation.xml

<animation-list android:id="@+id/selected" android:oneshot="false">
<item android:drawable="@drawable/frame01" android:duration="50" />
<item android:drawable="@drawable/frame02" android:duration="50" />
<item android:drawable="@drawable/frame03" android:duration="50" />
....
<item android:drawable="@drawable/frameN" android:duration="50" />

要开始动画,您需要将图像投射到 AnimationDrawable,然后对其调用 start()

AnimationDrawable progressAnimation = (AnimationDrawable) yourImageView.getBackground();
progressAnimation.start();
  • 其他方式:

Android 提供 class android.graphics.Movie。此 class 能够解码和播放 InputStreams。因此,对于这种方法,您可以创建一个 class GifMovieView 并让它继承自 View:

public class GifMovieView extends View

阅读更多相关信息:

http://droid-blog.net/2011/10/14/tutorial-how-to-use-animated-gifs-in-android-part-1/

参考:

Set Animated .GIF As Background Android