Android基础篇之显示GIF格式图片

Android基础篇之显示GIF格式图片

2011-05-25 23:20:17

大家都知道,如果我们在Android中用ImageView直接显示GIF的图片,图片只会停在第一帧上,而不会继续。这时看到的只是一张静态的图片,没有GIF的效果。我们可以用Movie来显示图片 这个方法较简单;

1.在main.xml中添加ImageView,指定一张GIF图片为背景;

2.MainActivity.java

package com.yin.displayGIF; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Movie; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity { private MyCustomView mView; private Movie mMovie; private long mMovieStart; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mView = new MyCustomView(this); setContentView(mView); } //自定义一个类,继承View class MyCustomView extends View{ public MyCustomView(Context context) { super(context); //以文件流的方式读取文件 mMovie = Movie.decodeStream( getResources().openRawResource(R.drawable.my_picture)); } @Override protected void onDraw(Canvas canvas) { long curTime = android.os.SystemClock.uptimeMillis(); //第一次播放 if(mMovieStart == 0){ mMovieStart = curTime; } if(mMovie != null){ int duration = mMovie.duration(); int relTime = (int)((curTime - mMovieStart)% duration); mMovie.setTime(relTime); mMovie.draw(canvas, 0, 0); //强制重绘 invalidate(); } super.onDraw(canvas); } } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值