Warning: Cannot modify header information - headers already sent by (output started at /var/www/lalieno.it/index.php:48) in /var/www/lalieno.it/inc/cookie.php on line 3
a cadenza discontinua
Come se fossi
BLOG

Android Java - Implementare uno ZoomControls

Lo ZoomControls è uno strumento utilissimo da aggiungere ad un ipotetica SurfaceView al fine di controllare lo Zoom della Camera.

Supponendo di avere un camera già in uso, si può aggiungere pochissimo codice per aggiungere questa features ad una app.

Nel layout:

<zoomcontrols
android:id="@+id/CAMERA_ZOOM_CONTROLS" android:layout_alignbottom="@+id/surface_camera"
android:layout_centerinparent="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
</zoomcontrols>


Nell'activity aggiungiamo il controllo dichiarando due variabili private che sono utilizzate per mantenere l'auttuale zoom.

int currentZoomLevel = 0, maxZoomLevel = 0;

ZoomControls zoomControls = (ZoomControls)
findViewById(R.id.CAMERA_ZOOM_CONTROLS);

if(cp.isZoomSupported()){
    maxZoomLevel = cp.getMaxZoom();

    zoomControls.setIsZoomInEnabled(true);
    zoomControls.setIsZoomOutEnabled(true);

    zoomControls.setOnZoomInClickListener(new OnClickListener(){
        public void onClick(View v){
            if( (currentZoomLevel + 1) < maxZoomLevel){
                currentZoomLevel++;
                camera.startSmoothZoom(currentZoomLevel);
            }
        }
    });

    zoomControls.setOnZoomOutClickListener(new OnClickListener(){
        public void onClick(View v){
            if( (currentZoomLevel-1) > 0){
                currentZoomLevel--;
                camera.startSmoothZoom(currentZoomLevel);
            }
        }
    });
}
else
    zoomControls.setVisibility(View.GONE);

Lo zoom in questo estratto ha uno step di 1 ma ovviamente è possibile aumentarlo a piacimento.
Per qualsiasi domanda lasciate un commento.


di GuiZ
31/01/2014

Commenta

We'll never share your email with anyone else.