【问题标题】:How to solve slow scrolling in QT android app如何解决 QT android 应用程序中滚动缓慢的问题
【发布时间】:2017-09-27 14:59:56
【问题描述】:

我正在尝试制作一个简单的 QT android 应用程序,但基本上我的问题是在我的主屏幕上我有大约 250 个小图像要滚动。但我真的需要滚动流畅和快速。首先,我使用 QML 进行了尝试,但速度不是很快,然后我尝试在 qt 设计器中制作应用程序并使用小部件,但速度非常慢。然后我尝试使用 openGL,但在 android 上我只能使用 openGL ES,我找不到这么多示例,因为我找到的每个示例都比我需要的高级得多。

但基本上我的主要问题是,您认为解决我的问题的最佳方法是什么?如果它的 openGL 使用它的哪种方法是可以解决它的最佳方法?

谢谢。

【问题讨论】:

    标签: c++ performance qt opengl scroll


    【解决方案1】:

    与同一设备上的本机应用程序相比,这两种方法在滚动时都不会出现问题。检查以下内容:

    1. 确保仅在发布版本中测量性能,禁用 QML 调试且未附加调试器。
    2. 也许您的设备根本无法在一个视图中显示这么多图像 - 那么这不是 Qt 问题。与“本机”java-App 进行比较,看看是否是这种情况。
    3. 检查您是否正确实施了一切;例如检查你的主循环中是否有任何东西在运行,或者是否有一些事件重复发生而消耗 CPU 时间

    还有一些更一般的建议:

    1. 在将图像提供给 UI 之前将它们缩小到适当的视图大小,因为它们可能必须在每次帧更新时重新缩放和/或消耗图形内存。例如。当要在 64x64 视图中显示时,不要将源设置为 1024x1024 图像
    2. 如果图像要在纯色背景上显示,请从图像中删除透明度。
    3. 不要用其他小部件/控件覆盖图像
    4. 如果您的 UI 仍然“缓慢”,不妨尝试将所有或多个图像及其周围的 UI/控件合并为一个或多个更大的图像
    5. 很长的视图对用户不友好。也许实现一个寻呼机或选项卡视图等来将您的列表分成多个视图。这样您还可以减少加载时间
    6. 不要尝试自己在 openGL 中实现接口。使用 QtWidgets 和 QtQuick,您不太可能做出比您已经获得的更好的。

    【讨论】:

    • 感谢您的回答,但是,...我总是在发布版本中进行测试,我在多个设备上尝试过,甚至在 ios 上,但它在任何地方都不完美。我的实现是 100% 正确的。大多数情况下,我只针对这个问题在我的辅助程序中测试滚动,所以除了带有图像的屏幕之外别无他法。它们的尺寸确实缩小了,而且尺寸确实很慢。第二件事是我需要将图像用作带有标签的对象,并且用户应该能够单击它们,因此它们不仅仅是图像。我现在真的很绝望:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    相关资源
    最近更新 更多