我們都已看過時(shí)間推移攝影的完美范例。它是在一段時(shí)間內(nèi)拍攝多張照片的過程。它可能是每分鐘、每小時(shí)甚至每周拍攝一張照片。通過查看一系列時(shí)間推移的照片,可以了解事物如何隨時(shí)間而變化。一個(gè)可能的示例是觀察一幢建筑物如何建造,另一個(gè)可能的示例是記錄一朵花如何成長和盛開。
由于已經(jīng)構(gòu)建了一個(gè)基于定時(shí)器的Camera應(yīng)用程序,因此將它更新成一個(gè)時(shí)間推移應(yīng)用程序非常簡單。
首先需要改變一些實(shí)例變量并加入一個(gè)常量。
...
public class TimelapseSnapShot extends Activity implements OnClickListener,
SurfaceHolder.Callback, Camera.PictureCallback {
SurfaceView cameraView;
SurfaceHolder surfaceHolder;
Camera camera;
需要將Button重命名為startStopButton,因?yàn)樗F(xiàn)在將處理兩個(gè)動(dòng)作,同時(shí)將對其余的變量名執(zhí)行幾個(gè)細(xì)小的更新。
Button startStopButton;
TextView countdownTextView;
Handler timerUpdateHandler;
boolean timelapseRunning = false;
與前述的示例一樣,currentTime整數(shù)將用于累加兩次照相之間的時(shí)間量,而不是從總延遲遞減。將一個(gè)稱為SECONDS_BETWEEN_PHOTOS的常量設(shè)置為60。正如其名稱所暗示的那樣,該常量將用于設(shè)定拍攝照片之間等待的時(shí)間。
int currentTime = 0;
public static final int SECONDS_BETWEEN_PHOTOS = 60; // 1分鐘
onCreate方法大體上保持相同——只是將引用新的變量名稱。