android中顯示gif動畫原生態通常支持的不是很好,故找了一個開源的項目,現簡單介紹以下:
GifView 是一個爲了解決android中如今沒有直接顯示gif的view,只能經過mediaplay來顯示這個問題的項目,其用法和 ImageView同樣,支持gif圖片
問題:估計會出現OOM的問題,請你們思考如何避免OOM。
使用方法:
1-把GifView.jar加入你的項目。
2-在xml中配置GifView的基本屬性,GifView繼承自View類,和Button、ImageView同樣是一個UI控件。如:
<com.ant.liao.GifView android:id="@+id/gif2"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:paddingTop="4px" android:paddingLeft="14px" android:enabled="false" />
3-在代碼中配置經常使用屬性:
// 從xml中獲得GifView的句柄
gf1 = (GifView) findViewById(R.id.gif1);
// 設置Gif圖片源
gf1.setGifImage(R.drawable.gif1);
// 添加監聽器
gf1.setOnClickListener(this);
// 設置顯示的大小,拉伸或者壓縮
gf1.setShowDimension(300, 300);
// 設置加載方式:先加載後顯示:
GifImageType.
WAIT_FINISH
、邊加載邊顯示:
GifImageType.
SYNC_DECODER
、只顯示第一幀再顯示:
GifImageType.
COVER
gf1.setGifImageType(GifImageType.COVER);
GifView的Jar包共有四個類:
GifAction.java 觀察者類,監視GIF是否加載成功
GifFrame.java 裏面三個成員:當前圖片、延時、下張Frame的連接。
GifDecoder.java 解碼線程類
GifView.java 主類,包括經常使用方法,如GifView構造方法、設置圖片源、延遲、繪製等。
附件DEMO+源碼:
GifViewDemo.rar (799.31 KB, 下載次數: 586)
src.rar (9.21 KB, 下載次數: 260)
改進:
1.GifView怎麼控制gif的播放速度? --》》修改DrawThread中的SystemClock.sleep(10);
php