studio sobre programacion herramientas fundamentos con avanzado aplicaciones android android-activity zooming

sobre - manual de programacion android



Cómo ampliar toda la actividad en multi touch? (2)

Problem:

Es fácil hacer zoom de imágenes y vistas web. Pero quiero ampliar toda una actividad. ¿Cómo puedo hacer esto?

Here, I provide wire-frame:

De esto puedes entender lo que quiero hacer.

Request

Si tiene alguna solución para esto, por favor comparta.
Gracias.


Puede simular el acercamiento y el alejamiento escalando la vista de actividad de la raíz. Aquí hay un código de inicio:

View v = findViewById(android.R.id.content); // get reference to root activity view v.setOnClickListener(new OnClickListener() { float zoomFactor = 1.5f; boolean zoomedOut = false; @Override public void onClick(View v) { if(zoomedOut) { // now zoom in v.setScaleX(1); v.setScaleY(1); zoomedOut = false; } else { v.setScaleX(zoomFactor); v.setScaleY(zoomFactor); zoomedOut = true; } } });

Tenga en cuenta que la actividad aumentará con un solo clic en lugar de hacer un acercamiento al tocar dos veces. Además, es probable que desee animar el zoom. Busque Animación de propiedades para obtener detalles sobre cómo lograr esto.

[EDITAR] Para niveles API más antiguos, puede usar ScaleAnimation. También puede establecer la duración de la animación. Sin embargo, una advertencia importante es que solo modifica el aspecto de la vista, pero la vista real no cambia.

if(zoomedOut) { // zoom in ScaleAnimation anim = new ScaleAnimation(1f, 1.5f, 1f, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); anim.setDuration(500); anim.setFillAfter(true); v.startAnimation(anim); zoomedOut = false; } else { ScaleAnimation anim = new ScaleAnimation(1.5f, 1f, 1.5f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); anim.setDuration(500); anim.setFillAfter(true); v.startAnimation(anim); zoomedOut = true;


Puede usar setScaleX y setScaleY para ampliar la vista de actividad completa .

Luego debe establecer el punto de pivote con setPivotX y setPivotY .

Los buenos ejemplos con detalles para todo el zoom de la actividad con multitouch:

1) MultiTouch para toda la actividad.

2) Zooming vista completamente.