欢迎访问 水平网    今天是:2018年01月17日 注册 | 登录 | 订阅 | 收藏
>> 安卓【Android】 >> 编程应用 >> Android如何播放GIF动画
推荐文章
热点文章

Android如何播放GIF动画

作者:未知,  来源:网络,  阅读:648,  发布时间:2014-05-19  【放入收藏夹
Android支持GIF动画,但是如果利用ImageView标签直接写在布局文件中:
<ImageViewandroid:id="@+id/gifpicture"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/animation" />

程序只能加载GIF动画的第一帧。如果想要正常播放GIF动画,需要借助Movie实现。
animation.gif是需要播放的GIF动画。
MainActivity实现了加载GIF动画的功能。
内部类CustomGifView 利用Movie播放GIF动画。解释一下:

mMovie = Movie.decodeStream(getResources().openRawResource(R.drawable.animation));

将GIF动画以文件流的形式转换成Movie。
以下是代码:【复制
publicclass MainActivity extends Activity {
private Movie mMovie;
privatelong mMovieStart;
/** Called when the activity is first created. */
@Override
publicvoid onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( new CustomGifView( this ) );
}


class CustomGifView extends View {
public CustomGifView( Context context )
{
super(context);
mMovie = Movie.decodeStream( getResources().openRawResource(
R.drawable.animation ) );
}


publicvoid onDraw( Canvas canvas )
{
long now = android.os.SystemClock.uptimeMillis();
if ( mMovieStart == 0 ) /* first time */
{
mMovieStart = now;
}
if ( mMovie != null )
{
int dur = mMovie.duration();
if ( dur == 0 )
{
dur = 1000;
}
int relTime = (int) ( (now – mMovieStart) % dur);
mMovie.setTime( relTime );
mMovie.draw( canvas, 0, 0 );
invalidate();
}
}
}

内部类CustomGifView 利用Movie播放GIF动画。解释一下:
mMovie = Movie.decodeStream(getResources().openRawResource(R.drawable.animation));
将GIF动画以文件流的形式转换成Movie。
以下是代码:【复制
publicvoid onDraw( Canvas canvas )
{
long now = android.os.SystemClock.uptimeMillis();
if ( mMovieStart == 0 ) /* first time */
{
mMovieStart = now;
}
if ( mMovie != null )
{
int dur = mMovie.duration();
if ( dur == 0 )
{
dur = 1000;
}
int relTime = (int) ( (now – mMovieStart) % dur);
mMovie.setTime( relTime );
mMovie.draw( canvas, 0, 0 );
invalidate();
}

invalidate();作用是刷新当前View,这样onDraw方法重复执行,Movie就能画出GIF动画的每一帧。到此,GIF动画就能正常播放了。
还有一种方法是根据配置文件,设置播放帧,显然是不推荐的。当然想了解,请看 http://developer.aiwgame.com/
TGAS:AndroidGIF动画
评论【共有0条评论】查看所有评论
昵称:(*)   邮箱:   QQ:   验证码: 看不清楚?点击刷新验证码