[Xamarin] 播放Gif 圖片
2016-08-05
想要用Gif 處理一些簡單的動畫問題,所以找了一下方法 發現 其實Xamarin Component 有提供 ( https://components.xamarin.com/view/gifimageviewandroid )
但是下方範例關於引入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 檔案夾中
並且Build Action 改成 Android Assets
播放的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();
}
}
source code : https://github.com/donma/Xamarin.GifImageView.Sample