我在互联网上看了很多,但只找到了示例,如何每秒更改文本或显示甚至毫秒。
我正在使用这些示例在第二次更改时更改图片,但计时器不再准确。在图像更改时,应用程序响应随机延迟大约20 milisec或200 milisec。
我使用的是Runnable类postDelay
和AsynTask
onPostExecute
刷新用户界面,但两者的工作方式完全相同。
每秒更换图片的最佳做法是什么? 在未来,我有一个想法,每秒钟开始动画5个图像(更多花哨的时钟计时器)。
我会发布我的代码,但现在到目前为止我发现的所有例子都是一团糟。
答案 0 :(得分:1)
你还没有共享代码所以我只能猜测,
我建议将图像作为位图或drawable初始化,可能在哈希表中。
之后,启动计时器并放置代码以在正确的位置替换图像。 重点是你不应该花时间而不是替换你的线程中的图像。
<强>编辑:强> 如果你想通过代码来实现:
在开始动画之前,创建一个Bitmaps数组,而不是drawable id(或Drawble类的对象)。 为什么,因为您需要节省系统在从数组中提供的ID创建位图所花费的时间,然后设置为图像视图。
此外,您可以使用AnimateDrawbles,这非常容易优化和可靠。
这是一个sample。 只需根据需要调整xml中的duration变量。