gif-drawable的使用及详解

下载gif-drawable包和Demo的链接:http://pan.baidu.com/s/1eQxVKRo

本帖原创,转载的朋友请注明转载地址》:http://www.cnblogs.com/zxxiaoxia/

    好久没有写博客了,今天来更新一下。

最近研究了一下图片发现这个控件还是不错的。所以给大家分享一下。

1、解压文件

将文件解压会发现有这样一系列的文件

2、添加文件到libs目录下

然后在eclipse或者idea(Android studio也是一样的)建一个工程,将这些文件导入进去。

添加到libs文件目录下

我们的环境就搭建完成了。

3、写布局文件

代码:

<pl.droidsonroids.gif.GifImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/src_anim"
    android:background="@drawable/bg_anim"
    />

这里多说一下,gif-Drawable一共提供了3中可以显示动态图片的控件:GifImageViewGifImageButtonGifTextView。当需要赋的图像值是gif格式的图片的时候,会显示动态图片,如果是普通的静态图片,例如是png,jpg的,这个时候,gifImageView等这些控件的效果和ImageView是一样的。也就是说gif-drawable比ImageView更强大。

这里是GIFTextView的示例:

<pl.droidsonroids.gif.GifTextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:drawableTop="@drawable/left_anim"
    android:drawableStart="@drawable/left_anim"
    android:background="@drawable/bg_anim"
    />

 这时候运行一下gif图片就已经可以显示了。

4、进阶:控制gif图片,停止播放动态图和开始动态图

gif-drawable这个控件,实际上是实现了AnimatableMediaPlayerControl这两个接口。

所以可以通过以下方法来控制动画:

  • stop() - 停止动画
  • start() - 开始动画
  • isRunning() - 判断动画是否在播放状态
  • reset() -重置动画
  • setSpeed(float factor) - 设置新动画播放速度 例如setSpeed(2.0f),动画会以二倍的速度进行播放
  • getDuration() - 返回动画播放的时间

其实控制gif图片和控制VideoView是一样的,

下面是代码示例:

/**
	 * 
	 * @author Sky
	 *
	 */
	@Override
    protected void onCreate ( Bundle savedInstanceState )
    {
        super.onCreate( savedInstanceState );
        
        GifImageButton gib = new GifImageButton( this );
        setContentView( gib );
        gib.setImageResource( R.drawable.sample );
        //上的3行代码也可以通过下面代码实现,是同理的,通过布局来获得空间
        //setContentView(R.layout.activity_main);
		//GifImageView gifImageView=(GifImageView) findViewById(R.id.gigImageview);
        
        //获取控制器
        final MediaController mc = new MediaController( this );
        //将图片放入媒体控制器中
        mc.setMediaPlayer( ( GifDrawable ) gib.getDrawable() );
        mc.setAnchorView( gib );
        //给图片添加监听,点击就会显示播放控件
        gib.setOnClickListener( new OnClickListener()
        {
            @Override
            public void onClick ( View v )
            {
                mc.show();
            }
        } );
    }

小提示:

有的朋友可能下了代码之后会不能运行。

需要修改project.properties文件下的版本

还有可能是资源图片需要换成你个人的文件。

要是还有问题可以留言的

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏分享达人秀

响应Android系统的事件

在开发Android应用时,有时候可能需要让应用程序随系统设置而进行调整,比如判断系统的屏幕方向、判断系统方向的方向导航设备等。除此之外,有时候可能还需...

2329
来自专栏Android小菜鸡

自定义组件——TitleView

  TitleView是一个常用的顶部标题栏组件,操作简单,可以快速搭建,并实现统一管理标题栏的目的。   采用建造者模式,支持快速构建back按钮、标题名、...

913
来自专栏浅探ARKit

ARKit 检测图片(类似支付宝扫福字)

2.把图片放进AR Resources,然后使用Xcode面板设置识别图像的实际大小

4766
来自专栏守望轩

Visual Studio 2008 每日提示(十四)

#131、你为什么会把窗体设置成为浮动(模式) 原文链接:Why you would want to make a Tool Window Floating ...

3547
来自专栏我和未来有约会

Silverlight控件 - ScatterView

Silverlight控件 - ScatterView 简介: ScatterView是一个布局控件,允许对其内部的子控件进行鼠标拖拽、扔出等操作。 项...

3836
来自专栏Android点滴积累

Android重构与设计之路,从整理提示弹窗(SmartAlertPop)开始

  封装一个独立弹窗Module,这里的弹窗包括普通的Dialog方式弹框和WindowManager方式弹窗。提供一种管理项目里面弹窗的方案,便于后期修改和维...

2308
来自专栏Ray学习笔记

Jump Start Bootstrap 第4章

JavaScript是网页上事实上的脚本语言。流行的网页功能,例如:漂亮的图片幻灯片、下拉菜单、弹出框等,都可以结合JavaScript和CSS实现。在这章,我...

1304
来自专栏大数据互联网思维

为Github项目说明添加优美标签

大家在Github上看项目的时候,是不是经常在项目介绍README.md里看到这种高大上的标签,以下截取自开源库OkGo的README.md。

5612
来自专栏Android干货

Android项目实战(九):CustomShapeImageView 自定义形状的ImageView

2807
来自专栏python3

tkinter -- Text (2)

结果是文本的颜色不是按照 insert 给定的顺序来设置,而是按照 tag 的创建顺序来设置的

1172

扫码关注云+社区

领取腾讯云代金券