我们都已看过时间推移摄影的完美范例。它是在一段时间内拍摄多张照片的过程。它可能是每分钟、每小时甚至每周拍摄一张照片。通过查看一系列时间推移的照片,可以了解事物如何随时间而变化。一个可能的示例是观察一幢建筑物如何建造,另一个可能的示例是记录一朵花如何成长和盛开。
由于已经构建了一个基于定时器的Camera应用程序,因此将它更新成一个时间推移应用程序非常简单。
首先需要改变一些实例变量并加入一个常量。
...
public class TimelapseSnapShot extends Activity implements OnClickListener,
SurfaceHolder.Callback, Camera.PictureCallback {
SurfaceView cameraView;
SurfaceHolder surfaceHolder;
Camera camera;
需要将Button重命名为startStopButton,因为它现在将处理两个动作,同时将对其余的变量名执行几个细小的更新。
Button startStopButton;
TextView countdownTextView;
Handler timerUpdateHandler;
boolean timelapseRunning = false;
与前述的示例一样,currentTime整数将用于累加两次照相之间的时间量,而不是从总延迟递减。将一个称为SECONDS_BETWEEN_PHOTOS的常量设置为60。正如其名称所暗示的那样,该常量将用于设定拍摄照片之间等待的时间。
int currentTime = 0;
public static final int SECONDS_BETWEEN_PHOTOS = 60; // 1分钟
onCreate方法大体上保持相同——只是将引用新的变量名称。