Je travaille sur Surface-Camera-Preview, et je veux implémenter le contrôle du zoom avec seekbar, déjà fait avec le zoom pinch, donc y a-t-il un moyen de le contrôler avec seekbar? Merci.Comment implémenter le zoom avec seekbar dans SurfaceView Camera sous Android?
0
A
Répondre
2
Si vous réglez le zoom avec le zoom de pincement, vous pouvez utiliser setOnSeekBarChangeListener
pour régler le zoom pour la caméra:
seekbarZoom = (SeekBar) findViewById(R.id.seekBarZoom);
seekbarZoom.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
Log.d(TAG, "progress:"+progress);
// YOur code here in set zoom for pinch zooming, sth like this
if(mCamera.getParameters().isZoomSupported()){
Parameters params = mCamera.getParameters();
params.setZoom(progress);
mCamera.setParameters(params);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
Log.d(TAG, "onStartTrackingTouch");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
Log.d(TAG, "onStartTrackingTouch");
}
});
1
code partagé par Roshan Shan est une façon de le faire, mais si vous ne prisent pas la mettre max le SeekBar vous obtiendrez beaucoup de IndexOutOfBoundsException
des utilisateurs en raison de ne pas définir seekbarZoom.setMax(params.getMaxZoom())
. Parce que la valeur par défaut max du SeekBar est de 100 mais que maxZoom sur beaucoup de périphériques est inférieur à 100.
Merci mon cher oui, j'essaye de l'implémenter dans le code. –