下載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文件下的版本
還有多是資源圖片須要換成你我的的文件。
要是還有問題能夠留言的