在Android 中是不支持直接使用Gif 图片关联播放帧动画,如下动画在Android 中是无法播放的:
Android 提供了另外一种解决的办法,就是使用AnimationDrawable 这一函数使其支持逐帧播放,但是如何把gif 图片打散开来,成为每一帧的图片呢?下面介绍两种比较不错的软件,可以帮我们打散图片。
gifsplitter2.0
下载地址:gif分割
使用方法如下:
这一软件分割图片都是bmp图片,图片比较大,这里不推荐使用,尽量节省不必要的字节,所以这里推荐使用如下 软件
easygifanimator
软件下载:动画分割器
使用方法如下:
点击文件将帧文件导出即可
得到了帧文件后我们可以就编写代码,在res目录下新建anim动画文件夹,写下如下代码
<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="150" android:drawable="@drawable/xiu0" />
<item android:duration="150" android:drawable="@drawable/xiu1" />
<item android:duration="150" android:drawable="@drawable/xiu2" />
<item android:duration="150" android:drawable="@drawable/xiu3" />
</animation-list>
对应的item 为顺序的图片从开始到结束,duration为每张逐帧播放间隔,oneshot 为false 代表循环播放,设置为true 即播放一次即停止。
对应Activity 代码如下编写:
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class animActivity extends Activity implements OnClickListener {
ImageView iv = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv = (ImageView) findViewById(R.id.ImageView01);
iv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AnimationDrawable anim = null;
Object ob = iv.getBackground();
anim = (AnimationDrawable) ob;
anim.stop();
anim.start();
}
}
使用AnimationDrawable 对象获得图片的图片,然后指定这个AnimationDrawable 开始播放动画
Tip:使用此方法不会默认播放,必须要有事件触发才可播放动画,如上面的通过点击监听触发动画的播放
那么如何使用图片自动播放呢?我们可以联想一下,ProgressBar 是不是默认的时候就会转,那就是那个圆形的进度条,是的。我们可以对它进行改造合它也可以自动播放,在Values 文件下新建一个styles 文件,编写如下代码 :
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="animStyle" parent="@android:style/Widget.ProgressBar.Large">
<item name="android:indeterminateDrawable">@anim/test</item>
</style>
</resources>
上面样式文件自Widget.ProgressBar.Large 为其设置动画文件,我们在XML中就可以通过设置它的样式使其为我们工作
<ProgressBar android:id="@+id/ProgressBar01" style="@style/animStyle"
android:layout_width="128px" android:layout_height="128px"></ProgressBar>
OK,就是这么简单,下面看看运行效果:
源码下载:Demo
来源:http://www.cnblogs.com/TerryBlog/archive/2010/09/06/1819641.html
分享到:
相关推荐
本示例项目“TestGIFDemo”旨在演示如何在Android应用中播放GIF动画,这主要涉及到以下几个核心知识点: 1. **GIF格式理解**:GIF是一种流行的动画图像格式,它支持透明度和循环播放,特别适合于制作简单的动态效果...
在Android平台上,播放Gif动画是一项常见的需求,无论是加载指示器、按钮反馈还是其他动态展示效果,Gif图像都能提供丰富的视觉体验。本篇将详细探讨如何在Android应用中实现Gif动画的播放。 首先,我们需要理解Gif...
总结,这个Demo是关于如何在Android平台上实现GIF播放功能的一个实例,涉及到了Android图像处理、内存管理、线程同步、自定义View等多个知识点。通过研究这个Demo,开发者可以学习到如何在实际项目中集成GIF播放功能...
2. Picasso库:Picasso虽然主要针对静态图片,但通过添加一个叫做“NineOldAndroids”的库,也可以实现GIF播放。不过,这需要额外的配置和定制。 3. 自定义View:如果你不想依赖外部库,可以创建一个自定义的...
在Android平台上,播放GIF文件是一项常见的需求,无论是用于加载动图资源,还是...`GifViewDemo1`项目很可能是对这一过程的一个具体实现,通过学习和分析这个示例,你可以更深入地理解Android中GIF播放的原理和实践。
Android 播放Gif图片动画【源代码】,在Android 中是不支持直接使用Gif 图片关联播放帧动画,Android 提供了另外一种解决的办法,就是使用AnimationDrawable 这一函数使其支持逐帧播放,我们使用一款动画分割软件...
6. **生命周期管理**:在Activity或Fragment的生命周期中适当地管理GIF播放,比如在onPause()停止动画,在onResume()恢复。对于自定义View,还需要关注onStart()、onStop()等方法。 7. **内存和磁盘缓存**:为了...
3. **封装的jar包**:描述中提到的"已经封装好jar包可以直接使用"可能是指特定的GIF播放库,这类库通常会提供更简单的API,使得开发者无需关心底层实现,只需要调用几个方法就能实现GIF动画的播放。比如`GifDrawable...
在Android平台上,播放GIF图片是一项常见的需求,无论是用于加载动画、表情符号还是其他动态展示。本示例将深入探讨如何在Android应用中实现这一功能,以帮助开发者更好地理解和运用。 首先,我们要知道GIF是一种...
- **NineOldAndroids**: 这个库主要用于兼容Android 2.x版本,但它不直接支持GIF播放。你可以结合`GifDrawable`或者`GifImageView`来实现。 - **Glide**: 这是一个流行的图片加载库,它可以方便地加载和播放GIF。...
在Android平台上,由于系统本身并不直接支持Gif动画的播放,开发者需要采取一些变通的方法来实现这一功能。本文将详细介绍如何在Android应用中播放Gif动画。 首先,我们需要了解Android系统为什么不直接支持Gif动画...
在Android平台上,由于系统本身并不直接支持通过标准的ImageView组件来播放GIF动画,因此开发者需要采用特定的方式来实现这一功能。本节将深入探讨如何在Android应用中播放GIF源码,包括解析GIF文件、帧动画处理以及...
Android的原生控件并不支持播放GIF格式的图片。我们都知道,在Android中如果想要显示一张图片,可以借助ImageView控件来完成,但是如果将一张GIF图片设置到ImageView里,它只会显示这张图片的第一帧,不会产生任何的...
总之,Android平台虽然在早期版本中对Gif支持不足,但通过第三方库和API 24以上的新特性,开发者可以方便地在应用中实现Gif播放。同时,要注意性能优化和生命周期管理,以提供流畅且高效的用户体验。
5. **Activity与生命周期**:在DEMO的主Activity中,会初始化GIF视图,加载GIF资源,并在适当的时候启动GIF播放。需要注意Activity的生命周期方法,如`onCreate()`、`onStart()`和`onResume()`,确保在正确的时间...
非常方便的andorid播放gif借鉴与总结汇总。具体如下:1.一组图片方便的以gif形式播放;2.轻量的webview结合html播放gif;3小巧的第三方库播放gif;4强大的github上jni方式播放gif
然而,Android原生的ImageView并不支持直接播放GIF动画,因此需要借助第三方库来实现这个功能。本篇文章将详细讲解如何在Android应用中使用`GifView`库来播放GIF动画。 `GifView`是一个专为Android设计的库,用于在...