Android 載入gif動畫

來源:互聯網
上載者:User

標籤:android gif

今天想在應用的Loading頁面載入一個gif動畫,但又不知道怎麼弄,就網上搜了下,看到好多人都是使用[email protected]寫的GifView.jar包,
於是就簡單瞭解了一下:
    看了下作者的源碼,編寫的GifView繼承自View,那麼在使用的時候也就很方便了,可以當做一個普通的UI組件來用。
    在使用普通的UI組件的時候,我們一般都使用如下的方式:   
<Button        android:id="@+id/submit"        android:layout_width="120dp"        android:layout_height="60dp"        android:text="@string/submitBtn"/>
    而對於我們自訂的UI控制項,我們採用的一般為如下的方式:
    <包名.類名
        屬性:值
        ...
    />
    那麼,對於這種方法,GifView肯定也適用,需要注意的是:GifView所在的包名要寫正確,否則你將GifView.jar加入到你的工程後,布局檔案肯定
會報錯,作者所寫的GifView類所在的包名為:com.ant.liao 那麼我們就可是使用如下方式來寫gif動畫組件的布局檔案了:  
<com.ant.liao.GifView        android:id="@+id/gif"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"/>
    PS:需要的屬性值自己配置.

    完成了布局檔案,接下來就是要對gif檔案進行載入等工作了(在OnCreate中添加如下代碼):
    gf1 = (GifView) findViewById(R.id.gif);
    // 設定Gif圖片源
    gf1.setGifImage(R.drawable.gif);     
    // 設定顯示的大小,展開或者壓縮
    gf1.setShowDimension(400, 400);
    // 設定載入方式:先載入後顯示、邊載入邊顯示、只顯示第一幀再顯示
    gf1.setGifImageType(GifImageType.COVER);

    PS:載入方式的說明:
    看了下作者的源碼,對於載入方式是這樣定義的:   
public enum GifImageType{        /**         * 在解碼過程中,不顯示圖片,直到解碼全部成功後,再顯示         */        WAIT_FINISH (0),        /**         * 和解碼過程同步,解碼進行到哪裡,圖片顯示到哪裡         */        SYNC_DECODER (1),        /**         * 在解碼過程中,只顯示第一幀圖片         */        COVER (2);                GifImageType(int i){            nativeInt = i;        }        final int nativeInt;    }
    也就是說,作者提供了三種載入方式,使用時可根據不同的需求來定義。
    
    對於動畫顯示大小的設定,個人覺得欠妥,以具體的數字來設定,可能會影響動畫的品質,所以要想擷取原動畫的品質,可以通過擷取原動畫的大小來設
置動畫的顯示地區:   
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.gif);     width = bitmap.getWidth();     height = bitmap.getHeight();     gf1.setShowDimension(width, height);
    至此,一個gif動畫便已載入完成!

Android 載入gif動畫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.