【问题标题】:Android - Laggy fragment transition with full hd displayAndroid - 全高清显示的滞后片段过渡
【发布时间】:2015-08-04 13:35:24
【问题描述】:

我在我的应用程序的登录部分有一个简单的动画片段过渡 - 请参阅 anim.xml。片段具有来自 xml 中可绘制对象的背景设置,除非我在具有全高清显示的智能手机上测试它,否则一切正常。过渡突然变得迟缓。任何人都知道可能导致这种情况的原因是什么?两种背景的分辨率均为 1080*1920。

anim.xml - 动画示例(其中 4 个用于双向进出动画)

<?xml version="1.0" encoding="utf-8"?>
<set>
  <translate xmlns:android="http://schemas.android.com/apk/res/android"
   android:fromXDelta="-100%"
   android:toXDelta="0"
   android:interpolator="@android:anim/decelerate_interpolator"
   android:duration="250"/>
</set>

【问题讨论】:

    标签: android android-fragments fragment-transitions


    【解决方案1】:

    几年后的经验 - 将您的图像放入 drawable-nodpi

    nodpi

    这些是与密度无关的资源。系统无法扩展 带有此限定符标记的资源,无论当前 屏幕的密度。

    What Is The Difference Between -anydpi And -nodpi?

    【讨论】:

    • 您,先生,为我节省了很多时间。这终于奏效了。
    【解决方案2】:

    对我来说,您似乎遇到了性能问题(可能是 GPU,也可能是过度绘制)。我不知道它的原因是什么,但是有很多工具可以帮助您更好地了解正在发生的事情。 看看这篇文章http://www.curious-creature.com/docs/android-performance-case-study-1.html

    Android 性能模式视频也可能会有所帮助。我强烈建议观看这些:

    工具 - 配置 GPU 渲染https://www.youtube.com/watch?v=VzYkVL1n4M8

    透支https://www.youtube.com/watch?v=T52v50r-JfE

    UI 和 GPU https://www.youtube.com/watch?v=WH9AFhgwmDw

    为什么是 60 毫秒 https://www.youtube.com/watch?v=CaMTIgxCSqU

    【讨论】:

      【解决方案3】:

      好吧,经过一段时间(长时间)尝试解决此问题后,我的问题的唯一解决方案是将片段事务之前的背景图像更改为一些低分辨率图像并检查动画结束以将其更改回高分辨率水库图像。丑陋,但至少它有效。

      不过,如果你以后走这条路,预计在检测动画结束时会遇到一些麻烦。片段具有 onCreateAnimation 方法,您可以在其中添加 AnimationListener,该方法具有检测动画开始、重复和结束的方法,但它具有检测动画结束的错误行为。回调在动画结束之前触发,这使您的片段事务在即将结束时滞后(在我的情况下,它是最后十个像素左右)。

      以一种非常丑陋的方式解决了这个问题 - 在动画结束时实现了 10 毫秒的 CountDownTimer,并在定时器结束后将背景更改为高分辨率。

      另外,Fragment 的 onCreateAnimation 文档很少,所以你不知道它的参数是什么,我发现这个亚洲网页帮助我理解了它。
      http://y-anz-m.blogspot.cz/2013/05/support-package-fragmenttransaction.html

      无论如何,我不知道 FragmentTransaction 的背景是如何工作的,但感谢 Google 对 FragmentTransactions 和 AnimationListeners 的出色实现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        相关资源
        最近更新 更多