下载gif-drawable包和Demo的连接:http://pan.baidu.com/s/1eQxVKRohtml
本帖原创,转载的朋友请注明转载地址》:http://www.cnblogs.com/zxxiaoxia/java
很久没有写博客了,今天来更新一下。android
最近研究了一下图片发现这个控件仍是不错的。因此给你们分享一下。eclipse
一、解压文件ide
将文件解压会发现有这样一系列的文件布局
二、添加文件到libs目录下动画
而后在eclipse或者idea(Android studio也是同样的)建一个工程,将这些文件导入进去。this
添加到libs文件目录下idea
咱们的环境就搭建完成了。spa
三、写布局文件
代码:
<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中能够显示动态图片的控件:GifImageView
、GifImageButton
和GifTextView
。当须要赋的图像值是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图片就已经能够显示了。
四、进阶:控制gif图片,中止播放动态图和开始动态图
gif-drawable这个控件,其实是实现了Animatable
和 MediaPlayerControl这两个接口。
因此能够经过如下方法来控制动画:
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文件下的版本
还有多是资源图片须要换成你我的的文件。
要是还有问题能够留言的