[Xamarin] 播放Gif 圖片

2016-08-05

想要用Gif 處理一些簡單的動畫問題,所以找了一下方法 發現 其實Xamarin Component 有提供 ( https://components.xamarin.com/view/gifimageviewandroid )
sh168

但是下方範例關於引入drawable 圖檔一直都無法法成功,於是我換另一種寫法才可以,不知道哪邊有問題不過解決就好

1. 首先你要引用 GifImageView 網址是 https://components.xamarin.com/view/gifimageviewandroid
2. Layout 的部分 :

<com.felipecsl.gifimageview.library.GifImageView
    android:id="@+id/gifImageView"
    android:layout_gravity="center"
    android:scaleType="fitCenter"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

3.引入Assets 的gif ,首先我把sample.gif 放入置 Assets 檔案夾中
image
並且Build Action 改成 Android Assets
image

播放的C# code :

// Read From Assets
 
AssetManager assets = this.Assets;
using (var streamReader = new StreamReader(assets.Open("sample.gif")))
{
    var bytes = default(byte[]);
    using (var memstream = new MemoryStream())
    {
        streamReader.BaseStream.CopyTo(memstream);
        bytes = memstream.ToArray();
 
        gifViewer.SetBytes(bytes);
        gifViewer.StartAnimation();
    }
 
}

4. 如果圖片是在drawable 的作法
//Read From Drawable
var stream = Resources.OpenRawResource(Resource.Drawable.sample2);
using (var streamReader = new StreamReader(stream))
{
    var bytes = default(byte[]);
    using (var memstream = new MemoryStream())
    {
        streamReader.BaseStream.CopyTo(memstream);
        bytes = memstream.ToArray();
 
        gifViewer.SetBytes(bytes);
        gifViewer.StartAnimation();
    }
 
}

result :
Screenshot_20160805-161703

source code : https://github.com/donma/Xamarin.GifImageView.Sample


當麻許的超技八 2014 | Donma Hsu Design.