android 播放 gif动图
时间: 2023-07-22 18:21:04 浏览: 175
android播放gif
5星 · 资源好评率100%
在 Android 中播放 GIF 动图可以使用 `Movie` 类。以下是一个简单的示例代码:
```java
ImageView imageView = findViewById(R.id.imageView);
InputStream inputStream = getResources().openRawResource(R.raw.my_gif);
Movie movie = Movie.decodeStream(inputStream);
imageView.setImageDrawable(new MovieDrawable(movie));
movie.start();
```
其中,`MovieDrawable` 是一个自定义的 `Drawable` 类,用于将 `Movie` 对象渲染到 `ImageView` 上。以下是该类的实现代码:
```java
public class MovieDrawable extends Drawable {
private Movie mMovie;
private long mStartTime;
public MovieDrawable(Movie movie) {
mMovie = movie;
}
@Override
public void draw(Canvas canvas) {
if (mMovie == null) {
return;
}
long now = SystemClock.uptimeMillis();
if (mStartTime == 0) {
mStartTime = now;
}
int duration = mMovie.duration();
if (duration == 0) {
duration = 1000;
}
int time = (int) ((now - mStartTime) % duration);
mMovie.setTime(time);
mMovie.draw(canvas, getBounds().left, getBounds().top);
invalidateSelf();
}
@Override
public void setAlpha(int alpha) {
}
@Override
public void setColorFilter(ColorFilter colorFilter) {
}
@Override
public int getOpacity() {
return PixelFormat.TRANSPARENT;
}
}
```
在该示例中,假设 GIF 动图文件名为 `my_gif.gif`,位于 `res/raw/` 目录下。可以根据实际情况修改代码。
阅读全文