VK *_*aya 3 xamarin.ios xamarin.android xamarin xamarin.forms skiasharp
如何在Xamarin表单的skiasharp中使用自定义字体。
我试过了
paint.Typeface = SKTypeface.FromFamilyName("CoText_Bd");
Run Code Online (Sandbox Code Playgroud)
和
paint.Typeface = SKTypeface.FromFile("CoText_Bd");
Run Code Online (Sandbox Code Playgroud)
但是两者都没有解决。我是否需要使用依赖项服务访问字体的路径?
如果您需要真正的多平台解决方案,请将所有SkiaSharp / PaintCode绘图代码放入.NET标准库中,包括字体作为嵌入式资源(不要忘记将Build操作设置为Embedded资源!)。然后,您可以使用以下方法(库ClassLibrary1,文件夹字体)获取SKTypeface对象:
public static SKTypeface GetTypeface(string fullFontName)
{
SKTypeface result;
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("ClassLibrary1.Font." + fullFontName);
if (stream == null)
return null;
result = SKTypeface.FromStream(stream);
return result;
}
Run Code Online (Sandbox Code Playgroud)
当不再需要SKObjects时,请记住处置它们。
为了优化性能,最好在Dictionary中缓存SKTypeface对象以优化速度。
将所有绘图代码放入.NET标准库后,您可以在Windows Desktop WPF项目中轻松进行测试/开发,当所有内容都可以快速编译且准备就绪时,可以在移动应用程序中使用它。
小智 1
我们应该在 iOS 的 info.plist 中添加 UIAppFonts
<key>UIAppFonts</key>
<array>
<string>CoText_Bd.otf</string>
</array>
Run Code Online (Sandbox Code Playgroud)
对于 Android 尝试
CoText_Bd.otf#CoText_Bd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1700 次 |
| 最近记录: |