[英]Skia4Delphi text rendering issue in Android (FMX)
在我的项目中使用 Skia 后,我遇到了一些奇怪的问题。 当启用 Skia 并在 VirtualListView 中绘制一些文本(测试文本,Hello World)后,文本将如下所示:Test Tex ... Hello wor ... 为什么文本末尾有一些点? 为什么文本的其余字母没有完成而是用点代替? 例子:
我错过了什么?
在 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.