Я прихожу сегодня, потому что я застрял на загрузке GIF с платформой Android. Я знаю, что это работает, потому что он работает для UWP и прошивки, но андроид не работает ..Xamarin Forms - WebView Html Исходный номер
У меня есть этот объект:
public class Gif : WebView
{
public string GifSource
{
set
{
var html = new HtmlWebViewSource();
html.Html = String.Format(@"<html><body style='background: #FF0000;'><img src='{0}' style='width:100%;height:100%;'/></body></html>", "https://media.giphy.com/media/UGifMFmx0gERG/giphy.gif");
Debug.WriteLine("Html.Source = '{0}'", html.Html);
this.Margin = -10;
this.Source = html;
}
get { return (string)GetValue(SourceProperty); }
}
}
Так что я просто декларировать это Gif
в моем XAML стороне:
<AbsoluteLayout AbsoluteLayout.LayoutBounds="0.5, 0.5, 1, 1" AbsoluteLayout.LayoutFlags="All">
<control:Gif
AbsoluteLayout.LayoutBounds="0.5, 0, 1, 0.9"
AbsoluteLayout.LayoutFlags="All"
BackgroundColor="Red"
GifSource="Gifs/LoginBackground.gif" />
<BoxView
AbsoluteLayout.LayoutBounds="0.5, 0.5, 1, 1"
AbsoluteLayout.LayoutFlags="All"
BackgroundColor="Transparent" />
</AbsoluteLayout>
PS: Я объявляю BoxView
, чтобы избежать возможности перемещения веб-представления по жестом пользователя.
Теперь дело в том, что работает на UWP отлично, с обоих кодом:
html.Html = String.Format(@"<html><body style='background: #FF0000;'><img src='{0}' style='width:100%;height:100%;'/></body></html>", "https://media.giphy.com/media/UGifMFmx0gERG/giphy.gif");
this.Source = html;
или
this.Source = "https://media.giphy.com/media/UGifMFmx0gERG/giphy.gif";
На Android, то this.Source = "https://media.giphy.com/media/UGifMFmx0gERG/giphy.gif";
работы, однако первое решение не работа, что является проблемой. Создав свой собственный html, он позволяет мне сделать gif заполнять мое представление, в отличие от ссылки ... В другой раз, если я удалю style='width:100%;height:100%;'
html, он работает, но еще раз, а не с хорошим размером.
Любая идея? Заранее спасибо !