После некоторого исследования SO, я не могу найти способ реализовать масштабирование зума с помощью android.hardware.camera. Я использую SeekBar, но это не то, что мне нужно. Кто-нибудь знает, где я могу найти пример, который будет работать на Android SKD> = 15?Как реализовать масштабирование зума в Android?
В моей камереFragment я использую OnSeekBarChangeListener и в методе onProgressChanged я установил масштаб для камеры.
seekbar.setOnSeekBarChangeListener(this);
.....
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
try {
Camera.Parameters params = camera.getParameters();
params.setZoom(progress);
currentZoomLevel = progress;
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
camera.setParameters(params);
//set zoom level value
try {
float ratio = ((float) params.getZoomRatios().get(progress))/100;
tvZoomLevel.setText(String.format("%.1fX", ratio));
} catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
} catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
}
Работает на Android 4.x. Единственное, что я изменил: return (float) Math.sqrt (x * x + y * y); – Dylan
Для тех, кто реализует это в фрагменте, добавьте View v = inflater.inflate (R.layout.fragment, container, false); v.setOnTouchListener (это); – Dylan
Вы можете установить прослушиватель в свой view.iew view = inflater.inflate (R.layout.fragment_test, container, false); view.setOnTouchListener (новый View.OnTouchListener() { общественного логический onTouch (View v, MotionEvent событие) { если (event.getAction() == MotionEvent.ACTION_MOVE) { // сделать что-то } возвращение true; } }); – QuokMoon