android播放gif格式图片示例

代码如下:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup.LayoutParams;

import com.nmbs.R;

public class GifView extends View {
    private long movieStart;
    private Movie movie;

public GifView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        movie = Movie.decodeStream(getResources().openRawResource(
                R.drawable.ic_showseat));
    }

public GifView(Context context) {
        super(context);
        movie = Movie.decodeStream(getResources().openRawResource(
                R.drawable.ic_showseat));
    }

@Override
    protected void onDraw(Canvas canvas) {
        long curTime = android.os.SystemClock.uptimeMillis();

if (movieStart == 0) {
            movieStart = curTime;
        }
        if (movie != null) {
            int duraction = movie.duration();
            int relTime = (int) ((curTime - movieStart) % duraction);
            movie.setTime(relTime);
            movie.draw(canvas, 0, 0);
            invalidate();
        }
        super.onDraw(canvas);
    }

@Override
    public void setLayoutParams(LayoutParams params) {
        super.setLayoutParams(params);
    }
}

代码如下:

GifView gifView = new GifView(this);

(0)

相关推荐

  • Android自定义View播放Gif动画的示例

    前言 GIF是一种很常见的动态图片格式,在Android中它的使用场景非常多,大到启动页动画.小到一个Loading展示,都可以用GIF动画来完成,使用也很方便,直接从美工那边拿过来用就成.如果项目赶时间或者自定义原生动画太麻烦,GIF都是一个很好的选择,相比于最新的WEBP格式的动画,也有更好的兼容性(毕竟已经出现很多年了). 关于图片加载我一直用的是Google推荐的 Glide,图片加载和缓存都做的很好,同样也支持GIF动画.不过Glide默认就是循环播放Gif,没有开放相关的接口来控制G

  • Android使用glide加载gif动画设置播放次数

    在使用glide加载gif动画,有时需要设置播放的次数,然后播放玩一次或者几次之后,需要在播放完做一些其他的操作,直接看代码: Glide.with(this) .load(R.drawable.xiaoguo) .diskCacheStrategy(DiskCacheStrategy.SOURCE) .listener(new RequestListener<Integer, GlideDrawable>() { @Override public boolean onException(Ex

  • Android中播放Gif动画取巧的办法

    由于做的项目,要有个动画的等待效果,第一时间想到的就是Gif(懒,省事),但是试了好多据说能播放Gif的控件,也写过,但是放到魅族手机上就是不能播放,所有就想了个招,既然Gif能在浏览器上播放,那android 的 WebView 也能播放,写了个Demo,果然能播放. 1.将gif的文件放到android的资源文件夹里面 2.写个html,将android的gif源放到WebView里面去加载 <RelativeLayout xmlns:android="http://schemas.a

  • Android实现可播放GIF动画的ImageView

    Android的原生控件并不支持播放GIF格式的图片.我们都知道,在Android中如果想要显示一张图片,可以借助ImageView来完成,但是如果将一张GIF图片设置到ImageView里,它只会显示这张图片的第一帧,不会产生任何的动画效果.今天我们来编写一个自定义的增强型ImageView(继承ImageView),可以播放GIF格式的图片,暂且叫做GifImageView吧. 1.自定义属性 <?xml version="1.0" encoding="utf-8&

  • Android中GIF动图的播放控制和监听详解

    前言 最近接手的项目里涉及到了 GIF 动图的播放与监听,在上一版本中对于 GIF 的处理是由 H5 来实现的,因为考虑到用户体验,因此现在的需求是将这块儿原生化,途中差点误入歧途!下面来看看详细的介绍吧. Android 中 GIF 动图处理与监听 刚开始第一个想到的便是 glide , 但是自认为 glide 不能够控制 GIF 以及去监听它,所以网上去搜寻别的方法.看到有一个方案是将图片分帧,一张张的去用逐帧动画来实现. 我开始怀疑给这个解决方案的人了,都什么时代了还做这种费力不讨好,大量

  • android播放gif格式图片示例

    复制代码 代码如下: import android.content.Context;import android.graphics.Canvas;import android.graphics.Movie;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup.LayoutParams; import com.nmbs.R; public class GifView exten

  • 基于Android引入IjkPlayer无法播放mkv格式视频的解决方法

    写在前面 项目中直接引用或者直接编译源码得到的ijkplayer在播放mkv文件时出现(-10000)的错误,去项目github查看了才知道,默认是不支持mkv和rmvb格式视频的播放的. 用了一天时间解决(为什么用了一天,因为我蠢啊),这里记录一下解决的方法(官方上面其实已经有了详细的教程,无奈我当时没有很认真看.)这里为我自己这个新手做个记录: 仍然是采用编译源码的方式引入,只是需要按照官方的方法更改一下脚本文件 ijkplayer官方地址:https://github.com/Bilibi

  • Android 使用ViewPager实现图片左右循环滑动自动播放

    ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵 1. 首先看一些layout下的xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_

  • Android播放多张图片形成的一个动画示例

    本文实例讲述了Android播放多张图片形成的一个动画.分享给大家供大家参考,具体如下: 在Android里可以逐帧的播放图片,然后产生一种动态的效果,准备好几张连续的图片,然后在于源程序res文件夹下建立anim文件夹,然后新建一个XML XML代码如下: <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.androi

  • Android通过Movie展示Gif格式图片

    本文实例为大家分享Android通过Movie展示Gif格式图片的相关代码,供大家参考,具体内容如下 public class CommonGifView extends View { private Resources mResources; private Movie mMovie; private long startTime = 0; private float widthRatio; private float heightRatio; public CommonGifView(Con

  • Android ViewPager中显示图片与播放视频的填坑记录

    ViewPager介绍 ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样. ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包android-support-v4.jar里面. ViewPager: 1)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类. 2)ViewPager类需要一个PagerAdapter适配器类给它提供数据. 3)ViewPager经常和Fragment一起使用,并且

  • 使用python将图片格式转换为ico格式的示例

    因为python打包的时候需要用到ico图片格式,网上看好的图片又没有ico,于是自己寻找了一下python转换图片格式的方法,彻底解决这个问题,以后就可以自己轻松实现转化了. 代码如下: """ Author:Robin·QI Notes:将图片转换为ico格式 """ # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packages下载 import Py

  • Android使用ViewFlipper实现图片上下自动轮播的示例代码

    本文主要介绍了Android使用ViewFlipper实现图片上下自动轮播的示例代码,分享给大家,具体如下: 先看效果: 1.xml代码: <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="match_parent" android:layout_height="match_parent" android:flipInterval="3000"

  • Android开发实现的图片点击切换功能示例

    本文实例讲述了Android开发实现的图片点击切换功能.分享给大家供大家参考,具体如下: java 代码 public class MainActivity extends AppCompatActivity { //定义一个访问图片的数组 int[] images = new int[]{ R.drawable.java, R.drawable.javaee, R.drawable.swift, R.drawable.ajax, R.drawable.html, }; //用于图片切换 int

  • Android开发实现的图片浏览功能示例【放大图片】

    本文实例讲述了Android开发实现的图片浏览功能.分享给大家供大家参考,具体如下: 效果图: 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res

随机推荐