我在Xamarin.Forms的项目中添加了fontawesome,在UWP字体看起来像预期的那样但在android上它是正方形。我已经为AndroidAsset设置了构建操作,但它不起作用。
答案 0 :(得分:2)
在Android上,使用FontAwesome
有点麻烦。帖子背后的代码是关于如何以最简单的方式使用Font Awesome。一旦设置,就像使用Label一样简单。
我们使用自定义渲染器查看相关标签,确定文本字段中是否有一个字符,以及该字符的值是否为0xf000
或更高。如果是,我们将字体替换为FontAwesome
。
由于图标均以0xf000
或更高版本开始,因此自定义渲染器将确保使用正确的字体
[assembly: ExportRenderer(typeof(Label), typeof(AwesomeRenderer))]
namespace Awesome.Droid
{
public class AwesomeRenderer : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
var label = (TextView)Control;
var text = label.Text;
if(text.Length > 1 || text[0] < 0xf000)
{
return;
}
var font = Typeface.CreateFromAsset(Xamarin.Forms.Forms.Context.ApplicationContext.Assets, "fontawesome.ttf");
label.Typeface = font;
}
}
}