开发者社区> 壮壮father> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

gif-drawable的使用及详解

简介: 下载gif-drawable包和Demo的链接:http://pan.baidu.com/s/1eQxVKRo 本帖原创,转载的朋友请注明转载地址》:http://www.cnblogs.com/zxxiaoxia/     好久没有写博客了,今天来更新一下。
+关注继续查看

下载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文件下的版本

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

要是还有问题可以留言的

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
安卓 Bitmap 和 Drawable 的使用
Bitmap 的使用 高效加载大位图 解码大的 bitmap,然后加载一个较小的图片到内存中去,从而避免超出程序的内存限制。
61 0
请参考rhel7 安装 oracle 18c rac(03 dbca 建立数据库)
rhel7 安装 oracle 18c rac(01 grid软件安装) dbca 建立数据库。
2993 0
Angular中sweetalert弹框的使用详解
最近太忙了,项目中使用的弹框老板嫌太丑,让我们优化一下,我在网上找了一下,找到了sweetalert弹框,算是比较好看的弹框了。所以我就想办法将sweetalert用到项目中,在项目中引入sweetalert时,遇到诸多问题,但最终在我不懈坚持下,都解决了,实现了效果。
2915 0
题解 CF520E 【Pluses everywhere】
题目链接 ps:可能组合数一不小心打错了,请发现的大佬提出,谢谢。我们来讨论每一位数$a_{i}$被算了多少次。总共有$n-1$个空位可以放$'+'$所以,$a_{i}$左边有$i-1$个空位,右边$n-1-(i-1)$个。
921 0
WPF中时间选择控件的使用
目前WPF还没有DateTimePicker控件,不过,可以通过WPF自带的WindowsFormsHost 控件来调用WINFORM下的时间控件来实现。具体代码示例如下: 点击(此处)折叠或打开 my:WindowsFormsHost Height="20" Hor...
1409 0
android bitmap drawable 互转
引用:  http://www.android123.com.cn/kaifafaq/704.html 很多开发者表示,不知道Android的Drawable和Bitmap之间如何相关转换。下面Android123给大家两种比较简单高效的方法。
518 0
Drawable之color示例
代码:/Files/cappuccino/DrawableColorDemo.rar
456 0
+关注
壮壮father
从14年开始从事安卓开发。喜欢接触新鲜事物,不断的挑战自己
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载