2017-05-15 3 views

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"); 
     } 

    }); 
+0

Merci mon cher oui, j'essaye de l'implémenter dans le code. –

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.