android - MultiView 首秀,FPS 很低的动画

标签 android delphi firemonkey delphi-10.1-berlin multiview

我有一个包含多个项目的 MultiView 和 TImages 作为图标而不是 ImageList(我以前使用过 ImageList 但它很坏而且消耗的 CPU 不少)。

发生的事情是:当用户在打开应用程序后第一次点击 MasterButton 或滑动 MultiView 时,应用程序会卡住大约 1/3 秒,然后滑动动画以大约 2 或 3 fps 显示,在第一次滑动后,MultiView 恢复正常 fps 动画。

enter image description here

我尝试从 OnStartShowing 中删除所有代码,但完全没有任何区别。可能导致此问题的原因是什么?有什么方法可以“预加载”在第一场演出中可能加载的内容吗?

最佳答案

一个选项是删除您在多 View 中使用的所有标准控件,并改用 Alcinoe 标准控件。它们是双缓冲的,所以你可以预加载它们,而且它们比普通的 Delphi 风格的控件绘制起来快得多(我说快得多)。通常尽量避免使用所有样式控件(例如:Tlabel),而改用经典控件(例如:TText)

另一条评论:尝试查看您是否选择了系统上可用的字体,否则当应用程序第一次渲染控件时,使用系统上没有的字体,这将花费很长时间确定要使用的字体的时间

注意:我无法发表评论,所以我无法回答@jerrydodge,但我想告诉他他是错误的,使用 delphi,您可以使用 studio/xcode(至少在柏林,在东京,他们实际上是一个错误)!您只需要正确构建它;)尝试使用双缓冲控件查看 alcinoe 项目

关于android - MultiView 首秀,FPS 很低的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45577738/

相关文章:

android - 手机关机后应用程序能否保留其root访问权限?

Android - Gridview 图像在滚动时混合

web-services - 如何在 Delphi SOAP Web 服务客户端中使用 NTLM 身份验证?

delphi - 在Delphi XE中设置运行时的onclick事件

android - 从服务调用prepareAsync()后MediaPlayer回调不会触发

android - 无法在 GridView 上显示图像

delphi - 试图通过单击按钮使Editbox上下移动

delphi - 有没有办法在不同的编辑器中使用 Delphi 调试器?

delphi - 带有 LiveBindings 的自定义网格 - EBindCompError 'No list control editor available'

delphi - 如何知道产生异常的确切行号