2017-09-27 38 views
-1

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

但基本上我的主要问题是,你认为什么是解决我的问题的最好方法,如果它的openGL使用它的方式是最好的解决方法?

谢谢。

回答

0

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

  1. 请确保仅在发布 - 构建中测量性能,禁用QML调试并且不附加任何调试器。
  2. 也许你的设备在一个视图中无法跟上太多图像 - 那么这不是Qt问题。与'本地'java-App进行比较,看看是否属于这种情况。
  3. 检查您是否正确实施了一切;例如检查那里有什么在你的主回路运行,或者一些事件一再happenening消耗CPU时间

而且一些一般性的建议:

  1. 下限值您的图像到相应的视图大小将它们给前用户界面,因为它们可能不得不在每一帧更新和/或消耗图形内存。例如。当它要显示在64x64视图中时,请不要将源设置为1024x1024图像
  2. 如果图像要在纯色背景上显示,请从图像中移除透明度。
  3. 不要覆盖控制
  4. 与其他部件的图像/如果你仍然得到一个“慢” UI,也许尝试合并所有或多个图像和其周围的UI /控制到一个或多个更大的图像
  5. 非常长的视图不方便用户使用。也许实现一个寻呼机或标签视图等将您的列表分成多个视图。这样你也可以减少加载时间
  6. 不要试图自己在openGL中实现一个接口。与QtWidgets和QtQuick相比,你不太可能做出更好的选择。
+0

感谢您的回答,但... 我总是在释放试验版本,我想它在多个设备上,甚至在iOS上,但它不是任何地方完善。我的实现是100%正确的。大多数情况下,我只是为了测试这个问题而在我的程序中测试滚动,所以除了屏幕图像以外没有别的。它们真的缩小了尺寸,而且尺寸非常小。第二件事是我需要使用图像作为标签的对象,用户应该能够点击它们,所以它们不仅仅是图像。我现在非常绝望:/ – merlinko