我目前正在评估Xamarin Forms作为我们针对移动平台的基于网络的HTML应用程序的替代方案。
我们的应用程序通常使用嵌入文本段落中的图形符号。 期望的效果如下所示:
当然,文本也必须能够自由环绕,包括所有符号。在HTML中,这可以简单地实现:
<p>Sample text with <img src="sample.jpg"> embedded</p>
如何使用Xamarin Forms实现相同的效果?我已经看过FormattedStrings,它允许格式化标签的子段,但它们似乎不允许嵌入图像。
另请注意,该解决方案至少需要支持iOS,Android和Windows Phone 8.1。
答案 0 :(得分:4)
显然被迫使用WebView
几乎无法将HTML5应用移动到Xamarin!
在Xamarin论坛中,我们提出了类似的问题:https://forums.xamarin.com/discussion/1649/text-with-image
解决问题Tomasz Cielecki在这里编写了一些示例代码:https://gist.github.com/Cheesebaron/5034440
然后他在博客上写了这篇文章: http://blog.ostebaronen.dk/2013/02/adding-images-to-textview-and-edittext.html
&LT;剪断&GT;
我从一个超级简单的示例开始尝试获取TextView中显示的图像。我搜索了一些解决方案,确定,Spannables允许使用ImageSpan!有很好的样品等等,我想出了这个。
TextView中的ImageSpan
//Load up your drawable.
var imageSpan = new ImageSpan(this, Resource.Drawable.Icon);
//Set the text of SpannableString from TextView
var spannableString = new SpannableString(textView.Text);
//Add image at end of string
spannableString.SetSpan(imageSpan, textView.Text.Length-1, textView.Text.Length, 0);
很简单,对吧?并且您可以向Spannable添加其他Spans的大量内容,例如StyleSpan,您可以使用粗体,斜体和其他样式设置字体样式。
由于这很容易,我很快就尝试使用EditText。它也可以正常工作......
&LT; /剪断&GT;
答案 1 :(得分:1)
目前,在文本块中包含符号和图像的唯一方法是使用WebView(https://developer.xamarin.com/guides/xamarin-forms/working-with/webview/)
var browser = new WebView();
var htmlSource = new HtmlWebViewSource ();
htmlSource.Html = @"<html><body>
<h1>Xamarin.Forms</h1>
<p>Welcome to WebView.</p>
</body></html>";
browser.Source = htmlSource;