Depende de la versión de Android que desee orientar.
- 2.2 o posterior - use el ScaleGestureDetector incorporado. El javadoc es muy útil, pero mira el ejemplo a continuación.
- 2.0-2.2 - ScaleGestureDetector no está incorporado, por lo que copy the version from Android y compilarlo en su aplicación.
- Pre-2.0 - Mutitouch no fue apoyada antes de 2.0, por lo que necesita copy ScaleGestureDetector.java from Android y hacer un poco más de trabajo a no utilizar ninguna API multitouch en dispositivos no compatibles:
Para evitar el uso de las API multitouch en pre 2.0 dispositivos, debe crear una interfaz para ScaleGestureDetector (Eclipse puede hacerlo a través del menú Refactor) y una implementación ficticia que usarán los dispositivos 1.x. Llamaremos a nuestra interfaz ScaleGestureDetectorInterface
y nuestra implementación ficticia FakeScaleGestureDetector
.
Aquí hay una muestra de apoyo de pre-2.0 dispositivos:
// If you don't care about pre-2.0 devices, just make this a
// ScaleGestureDetector and skip the API check in the constructor.
private final ScaleGestureDetectorInterface mScaleDetector;
public MyView {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ECLAIR) {
// Use the fake version which won't call any multitouch APIs
mScaleDetector = new FakeScaleGestureDetector();
} else {
// We are using SDK 2.0+, use the real implementation.
mScaleDetector = new ScaleGestureDetector(context,
new MyScaleListener());
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// On pre-2.0, the implementation does nothing.
return mScaleDetector.onTouchEvent(event);
}
private class MyScaleListener extends
ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureInterface detector) {
float scaleFactor = detector.getScaleFactor();
// If you were using a matrix to zoom an ImageView, you would do
// something like this:
mMatrix.postScale(scaleFactor, scaleFactor, detector.getFocusX(),
detector.getFocusY());
return true;
}
}
Estoy comenzando con el desarrollador de Android, si no hay uno, esta sería una gran oportunidad para comenzar uno y ponerlo a disposición de los demás. – onaclov2000
Parece confundir el término "multitouch". Lo que está pidiendo específicamente es la funcionalidad de "pellizcar zoom". Cuál es una de las cosas que se puede lograr usando multitouch. La funcionalidad multitáctil es simplemente la capacidad de detectar dos o más eventos táctiles en la pantalla al mismo tiempo. –