扩展定制的Camera应用程序(8)

我们都已看过时间推移摄影的完美范例。它是在一段时间内拍摄多张照片的过程。它可能是每分钟、每小时甚至每周拍摄一张照片。通过查看一系列时间推移的照片,可以了解事物如何随时间而变化。一个可能的示例是观察一幢建筑物如何建造,另一个可能的示例是记录一朵花如何成长和盛开。

由于已经构建了一个基于定时器的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方法大体上保持相同——只是将引用新的变量名称。

读书导航