我正在使用AnimationDrawable,大约有400张图片(每张3kb)。我在动画开始时启动了一个计时器,看起来总的演示时间与我离开计时器的时间不同(6分钟之内,差异大约是2秒)。这可能吗? 记忆会影响timimg吗?
对于我的项目,这个时间是必不可少的,任何替代或修复?
当用户点击按钮时,我开始动画(animation.start());在“相同”的时间我注意到一个时间(startTime = System.nanotime())。
if (v==start){
startTime= System.nanoTime();
animation.start();
}
当动画运行时,用户将在显示某个图像时单击按钮,此时我重新注意时间(atClick = System.nanotime())。由于我有兴趣知道自图片显示和用户点击后已经过了多少时间,我执行以下操作:我减去两个(startTime-atClick)并知道每个图像的持续时间我可以计算这个经过的时间(假设演示文稿同时开始我注意到时间sartTime并且时间将以相同的速率开始。)
if (v==click){
currentTimeR= System.nanoTime();
elapsedTimeR=currentTimeR-startTime;
elaps = elapsedTimeR - durationOfImage //durationOfImage is the supposed time the image would appear from the start of the presentation Exp: if first image is set to show for 5 sec and the second for 4 sec and the user clicks when the second image is showing than durationOfImage would be 5 sec and so on
}
这样做似乎在开始时它是正常的但是在动画结束时会出现动画延迟(例如:当动画开始后404秒显示图像时,从startTime开始经过的时间是404.5秒)。
还注意到,对于所有设备而言都不一样(在平板电脑上它显得不那么滞后)。
这可能吗?
我可以量化这种差异吗?或者我可以访问有关何时将每个图像显示为获取System.nanoTime?
的信息