在Xamarin.Froms中创建WebView的扩展以显示gif.我无法在Android上加载图片

在Xamarin.Froms中创建WebView的扩展以显示gif.我无法在Android上加载图片,第1张

概述iOS按预期工作.我也试过将.gif添加到assets文件夹中(将BaseUrl设置为“file:///android_asset”)没有运气.有任何想法吗?imageHtml="<center><bodybgcolor=\""+GetBackgroundColorHex()+"\""

iOS按预期工作.我也试过将.gif添加到assets文件夹中(将BaseUrl设置为“file:/// android_asset”)没有运气.有任何想法吗?

imageHTML = "<center><body bgcolor =\""                        + GetBackgroundcolorHex()                        + "\""                        + heightAnDWIDth                        + ">"                        + (!string.IsNullOrWhiteSpace(imagefilename)                            ? "<img src=\""                             + imagefilename                             + "\""                            + heightAnDWIDth                            + "/>"                            : "&nbsp;")                        + "</body></center>";            HTMLWebVIEwSource source = new HTMLWebVIEwSource()            {                HTML = imageHTML            };            if (Device.RuntimePlatform == Device.AndroID && !string.IsNullOrWhiteSpace(imagefilename))            {                source.BaseUrl = "file:///androID_res/drawable/";            }            Source = source;

这是我在输出中得到的错误:

12-11 02:08:00.256 E/AndroIDProtocolHandler(12895): Unable to open resource URL: file:///androID_res/drawable/Loading.gif12-11 02:08:00.256 E/AndroIDProtocolHandler(12895): java.lang.NoSuchFIEldException: Loading12-11 02:08:00.256 E/AndroIDProtocolHandler(12895):     at java.lang.class.getFIEld(Class.java:1549)12-11 02:08:00.256 E/AndroIDProtocolHandler(12895):     at org.chromium.androID_webvIEw.AndroIDProtocolHandler.getFIEldID(AndroIDProtocolHandler.java:40)12-11 02:08:00.256 E/AndroIDProtocolHandler(12895):     at org.chromium.androID_webvIEw.AndroIDProtocolHandler.openResource(AndroIDProtocolHandler.java:54)12-11 02:08:00.256 E/AndroIDProtocolHandler(12895):     at org.chromium.androID_webvIEw.AndroIDProtocolHandler.open(AndroIDProtocolHandler.java:10)

解决方法:

您可以通过资产加载AndroID.Webkit.WebVIEw内容,而不是drawable.

下面是Xamarin.AndroID代码,用于解析图像以获取其宽度/高度,以确保保留纵横比并从Asset文件夹中显示它:

WebVIEw Gif查看器:

var src = "out.gif";var backgroundcolor = "#ff0000";int imageWIDth;int imageHeight;using (var stream = Assets.Open(src))using (var options = new BitmapFactory.Options { InJustDecodeBounds = true }){    await BitmapFactory.DecodeStreamAsync(stream, null, options);    imageWIDth = options.OutWIDth;    imageHeight = options.OutHeight;}var HTML = $"<body bgcolor={backgroundcolor};\"><img src=\"{src}\" alt=\"A Gif file\" wIDth=\"{imageWIDth}\" height=\"{imageHeight}\" style=\"wIDth: 100%; height: auto;\"/></body>";webVIEw.Settings.AllowfileAccessFromfileURLs = true;webVIEw.LoadDataWithBaseURL("file:///androID_asset/", HTML, "text/HTML", "UTF-8", "");

通过Xamarin.Forms WebVIEw:

var src = "image.gif";var backgroundcolor = "#ff0000";int imageWIDth = 300;int imageHeight = 200;var HTML = $"<body bgcolor={backgroundcolor};\"><img src=\"{src}\" alt=\"A Gif file\" wIDth=\"{imageWIDth}\" height=\"{imageHeight}\" style=\"wIDth: 100%; height: auto;\"/></body>";webVIEw.source = new HTMLWebVIEwSource{    HTML = HTML};

注意:image.gif位于AndroID Assets(AndroIDResource)文件夹和iOS Resource文件夹(BundleResource)中

总结

以上是内存溢出为你收集整理的在Xamarin.Froms中创建WebView的扩展以显示gif.我无法在Android上加载图片全部内容,希望文章能够帮你解决在Xamarin.Froms中创建WebView的扩展以显示gif.我无法在Android上加载图片所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存