有可能将Android应用程序的背景变成像gif一样的动画背景吗?

时间:2015-03-28 23:46:27

标签: android animation gif animated android-background

我并不是说把gif变成背景只是一个移动的背景。提前致谢。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

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

Original GIF image

这个GIF可以分解为其框架:

GIF frames in GIMP

将它们保存为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提供课程android.graphics.Movie。该类能够解码和播放InputStream。因此,对于这种方法,您可以创建一个类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

答案 1 :(得分:2)

GIF不像人们习惯的那样在Android框架上运行。 不要使用GIF,请尝试以下操作为背景设置动画:

  1. 获取对要为其设置动画的背景的窗口小部件的引用。例如TextView tv;
  2. 删除内容,以便只显示背景。 tv.setText("")
  3. 将自定义背景设置为您的视图。 tv.setBackground("Background here")
  4. 将动画设置为您的视图tv.setAnimation(myAnimation)
  5. 为您的观看动画tv.startAnimation();
  6. 你去吧。官方文档中有许多关于动画的示例和资源。