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

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

要是还有问题可以留言的

最新文章

  1. [py]简易pick lucky num程序
  2. HDU 3652 B-number(数位DP)
  3. Struts和SpringMVC两种MVC框架比较
  4. unity3D ——自带寻路Navmesh入门教程(一)(转)
  5. 整数划分 (区间DP)
  6. php-5.3 zend opcache 的设置
  7. Xcode 性能优化
  8. HDU 5059 Harry And Biological Teacher
  9. 72. Edit Distance
  10. 有return的情况下try catch finally的执行顺序(最有说服力的总结)
  11. android118 上拉下拉刷新列表listView实现
  12. pojo和JavaBean的区别
  13. 【转】关于Adapter的The content of the adapter has changed问题分析 关于Adapter的The content of the adapter has changed问题分析
  14. PRG(Post/Redirect/Get)
  15. 深入理解Java虚拟机 自己编译JDK
  16. Yii2.0中场景的使用小记
  17. 201521123031 《Java程序设计》第14周学习总结
  18. day06 字典、元组、set的方法及常用操作
  19. react采坑笔记
  20. Spring框架(2)---IOC装配Bean(xml配置方式)

热门文章

  1. Spring Boot 相关文章目录
  2. HTML确认密码
  3. 新浪微博iOS SDK UIImage+WBSDKResize.o
  4. 3016: [Usaco2012 Nov]Clumsy Cows
  5. Vuex 模块化实现待办事项的状态管理
  6. JSP文件转换成为JAVA文件后的结构
  7. jQuery遮罩插件 jquery.blockUI.js
  8. jQuery中$.extend(true,object1, object2);深拷贝对象
  9. php与mysql的常规使用
  10. 微信JS图片上传与下载功能--微信JS系列文章(三)