Я играю с функциями камеры Android. Я пытаюсь динамически изменить параметры камеры, используя меню onCheck
, а затем вызываю surfaceChanged
, чтобы применить изменения.
public boolean onOptionsItemSelected(MenuItem item) {
Camera.Parameters parameters = camera.getParameters();
switch (item.getItemId()) {
case R.id.EFFECT_AQUA:
Toast.makeText(this, "AQUA", Toast.LENGTH_SHORT).show();
if (item.isChecked()) item.setChecked(false);
else item.setChecked(true);
parameters.setColorEffect(Camera.Parameters.EFFECT_AQUA);
surfaceChanged(null, 0, 0,0);
return true;
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Camera.Parameters parameters = camera.getParameters();
camera.setParameters(parameters);
camera.startPreview();
}
когда я запускаю приложение, проверка menuItem
вызывает surfaceChanged
, но выбранные параметры не используются / не устанавливаются командой setparamater.
Я думал о реализации глобального, чтобы захватить изменения, но мне это не нравится. Есть ли другой способ передачи параметров, когда мы делаем surfaceChanged
вызов?