繁体   English   中英

Android 中的 Skia4Delphi 文本呈现问题 (FMX)

[英]Skia4Delphi text rendering issue in Android (FMX)

在我的项目中使用 Skia 后,我遇到了一些奇怪的问题。 当启用 Skia 并在 VirtualListView 中绘制一些文本(测试文本,Hello World)后,文本将如下所示:Test Tex ... Hello wor ... 为什么文本末尾有一些点? 为什么文本的其余字母没有完成而是用点代替? 例子: https://freeimage.host/i/HK4cgKF

我错过了什么?

在 Windows 32/64 中编译项目工作正常,但此问题在任何 Android 构建调试/发布中仍然存在。

我已经设法通过在使用列表中的 Skia.FMX 之前声明 ksVirtualListView 来临时解决这个问题(在项目文件中)

program ExampleApp;

uses
System.StartUpCopy,
ksVirtualListView,
Skia.FMX,
FMX.Forms,
....

绘制文本现在很好,但程序开始变慢,有时会出现错误和崩溃。任何解决方案都值得赞赏。 提前致谢。

它在 Windows 中的显示方式:

在此处输入图像描述

它在 Android 中的显示方式:

在此处输入图像描述

使用 Pentire 附带的 ksVirtualListView: https ://github.com/gmurt/PentireFMX/blob/master/ksVirtualListView.pas

Pentire 库本身存在一个问题,阻止 Skia4Delphi 渲染器在 ksVirtualListView 中工作。 简要说明:它在单元初始化时创建了一个TTextLayout,这并不理想,因为Skia4Delphi在画布系统初始化时注册了自己的TTextLayout,这发生在单元初始化之后创建第一个表单时。

无论如何,我进行了必要的更改并发送了拉取请求: https ://github.com/gmurt/PentireFMX/pull/10

只需将更改应用到您的 Pentire 源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM