在Android上使用AnimationDrawable删除帧

时间:2015-07-07 04:18:49

标签: android performance android-animation

以下是我在Nexus 5 Lollipop设备上运行的一些动画代码:

<animation-list
    android:id="@+id/customProgressBar"
    android:oneshot="false"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/progress_zero" android:duration="250" />
    <item android:drawable="@drawable/progress_one" android:duration="250" />
    <item android:drawable="@drawable/progress_two" android:duration="250" />
    <item android:drawable="@drawable/progress_three" android:duration="250" />
    <item android:drawable="@drawable/progress_four" android:duration="250" />
</animation-list>

参考drawable是一组简单的矩形:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle" >
            <size android:width="70dp"
                android:height="10dp"/>
            <solid android:color="#00FFFFFF"/>
        </shape>
    </item>

    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="70dp" android:drawable="@drawable/hollow_square"/>
    <item android:top="0dp" android:left="20dp" android:bottom="0dp" android:right="50dp" android:drawable="@drawable/hollow_square"/>
    <item android:top="0dp" android:left="40dp" android:bottom="0dp" android:right="30dp" android:drawable="@drawable/hollow_square"/>
    <item android:top="0dp" android:left="60dp" android:bottom="0dp" android:right="10dp" android:drawable="@drawable/hollow_square"/>

</layer-list>

在测试这段代码时(我的内容视图中没有其他内容),我在设备上尝试了GPU渲染工具。我发现大多数操作花费的时间超过16毫秒 - 大部分时间都在ORANGE中显示。来自文档 -

  

条形图的橙色部分表示CPU等待的时间   让GPU完成它的工作。如果这个栏变高,就意味着   应用程序在GPU上做了太多工作

我不确定我做错了什么。还有其他人面临同样的问题吗?

0 个答案:

没有答案