【问题标题】:Xamarin Android UI Update too slowXamarin Android UI 更新太慢
【发布时间】:2017-01-19 20:01:34
【问题描述】:

我正在使用 Xamarin.Android 开发一个 Android 应用程序,并尝试每秒更新大约 50 次视图。我使用 RelativeLayout.LayoutParams 来更改视图的边距,以便它根据加速度计值移动。不幸的是,这不能很好地工作,因为看起来 android 的重绘速度不够快。 LayoutParams 是否有替代方案,或者如何强制 Android 更快地重绘我的视图? View 只是一个小的 ImageView。将它吸引到新位置应该不是很多工作。所以我不知道为什么这对 Android 来说是个问题。 提前致谢!

【问题讨论】:

  • update a View about 50 times per second 一秒钟似乎太多了。我强烈建议您阅读如何调试 UI 性能:developer.android.com/studio/profile/systrace.html
  • 感谢您的评论和链接。但是当我回到每秒大约 25 次更新时,它绝对看起来像慢动作。
  • 顺便说一下,我的 Lumia 650(速度较慢的 Windows Phone)运行完全相同的代码,就像一个魅力(每 100 个 CPU 滴答声更新一次)。那么为什么我的新 Android 设备不能这样做呢?
  • 现在我尝试使用 ImageView.SetX() / SetY() 方法而不是 LayoutParams.SetMargin()。但我认为没有区别:(
  • 我同意 Jon 的观点,每秒更新一个视图大约 50 次似乎太多了,我认为性能也与设备有关。你想做什么?一直重绘视图还是只是在视图上移动一些控件?

标签: java c# android xamarin layoutparams


【解决方案1】:

好的,看来问题不在于 android 性能。我的代码中有一些基于线程的错误。对此感到抱歉。顺便说一句,我想告​​诉你解决方案是什么。

我写了一个扩展RelativeLayout 的新类并覆盖onDraw() 方法。这个类包含了我计算和移动所需的其他东西。要移动View,我还必须调用postInvalidate() 方法。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2012-08-17
    • 2018-10-13
    相关资源
    最近更新 更多