我在寫一個應該有以下用例的應用程序:用戶點擊'Start!'按鈕,應用程序每隔1分鐘開始點擊圖片(內部使用CameraPreview類),並將按鈕文本更改爲「完成!」。android camera clickat fixed frequency
當用戶按下相同的按鈕(但有一個新的按鈕文本「完成!」),應用程序應該停止。
我已經能夠編寫代碼,當用戶點擊「開始!」時,每隔一分鐘點擊圖片。按鈕。但是,一旦圖像捕捉開始,按鈕就會凍結。
如何以按鈕不凍結的方式運行我的圖像捕獲 - 每1分鐘邏輯?有什麼最好的做法呢?謝謝!
這裏是的OnClick()的代碼:
@Override
public void onClick(View v) {
Button button = (Button)v;
String buttonText = button.getText().toString();
if(buttonText.equals(Constant.trainButtonText)) {
Log.i(TAG, "Robot Training started...");
while(true) {
surfaceView.capture(new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Log.v("Still", "Image data received from camera");
String[] params = new String[] {
Constant.Server, // Server URL
Long.toString(new Date().getTime()), // Image Timestamp
Constant.userId // Unique user ID for each customer
};
new UploadImageToWebServiceTask(data).execute(params);
camera.startPreview();
}
});
try {
// Capture every 1 minute until 'training done!' is not clicked
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else if(buttonText.equals(Constant.doneTrainingButtonText)) {
Log.i(TAG, "Robot Training completed...");
button.setText(Constant.trainButtonText);
button.clearFocus();
}
}
在代碼相同的按鈕是用來 - 只是我們決定基於按鈕上的文字做什麼。
請發表您的相關代碼。 – Sam
完成!謝謝你的時間。 –