簡體   English   中英

Xamarin.Forms fontawesome可在UWP上運行,但在Android上顯示為正方形

[英]Xamarin.Forms fontawesome works on UWP but shows square on Android

我在Xamarin.Forms項目中添加了fontawesome,UWP字體看起來像預期的那樣,但是在android上卻是正方形的。 我已將build-action設置為AndroidAsset,但它不起作用。

在Android上,使用FontAwesome有點麻煩。 這篇文章后面的代碼是關於如何以最簡單的方式使用Font Awesome的。 就像設置標簽一樣簡單。

我們使用一個自定義渲染器,該渲染器查看有問題的標簽,確定文本字段中是否存在一個字符,以及該字符的值是否為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;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM