Android显示gif格式图片

大家知道,在Android中使用ImageView来显示gif格式的图片,我们无法得到gif格式图片该有的效果,它只会停在第一帧上,而不会继续。这时只能看到一张静态的图片,这里我们可以使用个简单的方法,即是使用Movie来显示图片。

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

2.MainActivity.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值