我正在使用此代码来显示文件中的简单图像。但是我怎么能玩gif?
var CatalogMain = System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).ToString(), "NewFolder");
SimpleDraweeView MainImage = FindViewById<SimpleDraweeView>(Resource.Id.MainImageView);
Android.Net.Uri imageUri = Android.Net.Uri.FromFile(new Java.IO.File(CatalogMain, "Main.gif"));// For files on device
MainImage.SetImageURI(imageUri);
我也发现了这段代码,但是我犯了几个错误。我不知道如何将其转换为与xamarin一起玩。
Uri uri;
DraweeController controller = Fresco.NewDraweeControllerBuilder()
.SetUri(imageUri)
.setAutoPlayAnimations(true)
.build();
mSimpleDraweeView.setController(controller);
我遇到了以下错误
错误CS0246找不到类型或命名空间名称“DraweeController”。
错误CS0103当前不存在名称'mSimpleDraweeView'。
错误CS1061'ISimpleDraweeControllerBuilder'不包含定义。
答案 0 :(得分:0)
您可以使用:
Uri uri = Uri.Parse("http://img.huofar.com/data/jiankangrenwu/shizi.gif");
PipelineDraweeControllerBuilder pdcb= (PipelineDraweeControllerBuilder) Fresco.NewDraweeControllerBuilder()
.SetAutoPlayAnimations(true);
IDraweeController draweeController = pdcb.SetUri(Uri.Parse("res://" + PackageName + "/" + Resource.Drawable.test)).Build();
SimpleDraweeView img = FindViewById<SimpleDraweeView>(Resource.Id.img);
img.Controller = draweeController;
但是,这只能加载图片,gif无法播放。因为Fresco
需要com.facebook.fresco:animated-gif:1.9.0
来支持gif(看here)。
并且NAXAM/fresco-android-binding确实没有绑定com.facebook.fresco:animated-gif:1.9.0
他们的nuget。在Package Manager Console上执行Install-Package Naxam.Fresco.Droid
之后,您将在项目中添加五个包,它们是:
Naxam.Fresco.Droid
Naxam.FrescoCore.Droid
Naxam.FrescoDrawee.Droid
Naxam.FrescoImagePipeline.Droid
Naxam.FrescoImagePipelineBase.Droid
。但没有animated-gif
。
var CatalogMain = System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).ToString(), "dbsoft");
Glide.With(this).AsGif().Load(new File(CatalogMain, "Main.gif")).Into(MainImage);
我制作了一个demo,用Fresco和Gilde加载gif。