以下是我在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上做了太多工作
我不确定我做错了什么。还有其他人面临同样的问题吗?