- 布局文件添加TextView,用于显示倒计时的数字
countdown_textureView = (TextView) findViewById(R.id.countdown); - //倒计时拍照,倒计时seconds秒
protected void countdown(int seconds) {
countdown_textureView.setVisibility(View.VISIBLE);
ValueAnimator animator = ValueAnimator.ofInt(seconds, 0);
animator.setDuration(seconds * 1000);
animator.setInterpolator(new LinearInterpolator());
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int value = (Integer) animation.getAnimatedValue();
countdown_textureView.setText(String.valueOf(value));
}
});
animator.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) {
countdown_textureView.setVisibility(View.INVISIBLE);
capture();
}
});
animator.start();
}
private void switchFlashMode() {
switch (flashMode) {
case "flashmodel0":
mFlashMode = 1;
previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
previewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
repeatPreview();
break;
case "flashmodel1":
mFlashMode = 1;
previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
previewRequestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_TORCH);
repeatPreview();
break;
case "flashmodel2":
mFlashMode = 2;
previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
repeatPreview();
break;
case "flashmodel3":
mFlashMode = 3;
previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
previewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
repeatPreview();
break;
case "flashmodel4"://闪光灯在拍照时打开
mFlashMode = 2;
previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
previewRequestBuilder.set(CaptureRequest.FLASH_MODE, CameraMetadata.FLASH_MODE_OFF);
repeatPreview();
break;
}
}
private void setFlashMode() {
switch (mFlashMode) {
case 1://闪光灯关闭
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
captureBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
break;
case 2://闪光灯打開
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
captureBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
break;
case 3:
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
break;
}
}