Android中輕鬆顯示Gif圖片

教你輕鬆顯示Gif圖片
 

你們都知道,Android開發模擬器爲了節省內存,通常不支持直接顯示gif圖片,即便你強制設置了,也只會顯示圖片的第一幀。看到網上也有許多的方法,來實現此功能,可都比較的繁瑣,須要修改android源代碼來實現或者用gif解析器來實現。在此文章中,這裏教你們一種比較簡潔的一個方法,你能夠把這個類當作是一種工具類。用的時候,直接搬到程序裏面,更改下圖片的資源,就能夠很是輕鬆的顯示gif圖片了。html

 

 

步驟1看一下這個工具類的實例代碼:MyGifView.javajava

import android.content.Context;android

import android.graphics.Canvas;canvas

import android.graphics.Movie;ide

import android.util.AttributeSet;工具

import android.view.View;佈局

 

public class MyGifView extends View{測試

private long movieStart;url

private Movie movie;spa

    //此處必須重寫該構造方法

public MyGifView(Context context,AttributeSet attributeSet) {

super(context,attributeSet);

//以文件流(InputStream)讀取進gif圖片資源

movie=Movie.decodeStream(getResources().openRawResource(R.drawable.keyboard));

}

 

@Override

protected void onDraw(Canvas canvas) {

long curTime=android.os.SystemClock.uptimeMillis();

//第一次播放

if (movieStart == 0) {

movieStart = curTime;

}

if (movie != null) {

int duraction = movie.duration();

int relTime = (int) ((curTime-movieStart)%duraction);

movie.setTime(relTime);

movie.draw(canvas, 0, 0);

//強制重繪

invalidate();

}

super.onDraw(canvas);

}

}

此工具類中,只作了2件事情。1,構造方法;2,重寫了onDraw()方法。你們之後用的話,只需拷貝此類到你的工程下便可起做用。

 

步驟2佈局文件代碼 activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

 

    <TextView 

       android:text="====Gif圖片測試佈局===="

        android:layout_height="wrap_content"

       android:layout_width="wrap_content"

       />

    

     <com.example.showgifimage.MyGifView 

       android:id="@+id/iv"

       android:layout_height="wrap_content"

       android:layout_width="wrap_content"

       android:layout_margin="20dp"

       /> 

   

</LinearLayout>

佈局文件中,注意的是:標籤的設置 <com.example.showgifimage.MyGifView/>.

格式:包名+.類名

 

 

步驟3:activity中調用

public class MainActivity extends Activity {

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}

    就這麼輕鬆的把Gif圖片顯示了~~

Android中輕鬆顯示Gif圖片
相關文章
相關標籤/搜索