iOS按预期工作.我也试过将.gif添加到assets文件夹中(将BaseUrl设置为“file:/// android_asset”)没有运气.有任何想法吗?
imageHTML = "<center><body bgcolor =\"" + GetBackgroundcolorHex() + "\"" + heightAnDWIDth + ">" + (!string.IsNullOrWhiteSpace(imagefilename) ? "<img src=\"" + imagefilename + "\"" + heightAnDWIDth + "/>" : " ") + "</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上加载图片所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)