Mi diseño contiene botones, textviews, etc. ¿Es posible implementar un pellizco de zoom en mi diseño?android pellizcar zoom
Respuesta
Comprobar los siguientes enlaces que pueden ayudarle a
mejores ejemplos se proporcionan en los links siguientes, que se puede refactorizar para satisfacer sus necesidades.
que tiene implantado un zoom pellizco para mi TextView
, utilizando this tutorial. El código resultante es la siguiente:
private GestureDetector gestureDetector;
private View.OnTouchListener gestureListener;
y en onCreate():
// Zoom handlers
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
// We can be in one of these 2 states
static final int NONE = 0;
static final int ZOOM = 1;
int mode = NONE;
static final int MIN_FONT_SIZE = 10;
static final int MAX_FONT_SIZE = 50;
float oldDist = 1f;
@Override
public boolean onTouch(View v, MotionEvent event) {
TextView textView = (TextView) findViewById(R.id.text);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
oldDist = spacing(event);
Log.d(TAG, "oldDist=" + oldDist);
if (oldDist > 10f) {
mode = ZOOM;
Log.d(TAG, "mode=ZOOM");
}
break;
case MotionEvent.ACTION_POINTER_UP:
mode = NONE;
break;
case MotionEvent.ACTION_MOVE:
if (mode == ZOOM) {
float newDist = spacing(event);
// If you want to tweak font scaling, this is the place to go.
if (newDist > 10f) {
float scale = newDist/oldDist;
if (scale > 1) {
scale = 1.1f;
} else if (scale < 1) {
scale = 0.95f;
}
float currentSize = textView.getTextSize() * scale;
if ((currentSize < MAX_FONT_SIZE && currentSize > MIN_FONT_SIZE)
||(currentSize >= MAX_FONT_SIZE && scale < 1)
|| (currentSize <= MIN_FONT_SIZE && scale > 1)) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, currentSize);
}
}
}
break;
}
return false;
}
magia constantes de 1.1 y 0.95 fueron elegidos empíricamente (usando scale
variable para este fin hizo que mi tipo TextView
se comportan raro).
¿Puedo saber su 'MyGestureDetector()' clase – Praveenkumar
MyGestureDetector() por favor! – renanlf
@Renanlf Eso fue hace más de un año. Lo siento, ni siquiera codigo para android nunca más. Tampoco tengo esas fuentes en ningún lado. – folone
En nido de abeja, el nivel de API 11, es posible, podemos utilizar setScalaX y setScaleY con el punto de pivote
he explicado aquí
Zooming a view completely
Pinch Zoom to view completely
He creado un proyecto para pellizcos e básica zoom que es compatible con Android 2.1+
Disponible here
para Android 2.2 + (Level8 API), que ca n use ScaleGestureDetector.
se necesita un miembro de:
private ScaleGestureDetector mScaleDetector;
en su constructor (o onCreate()) se agrega:
mScaleDetector = new ScaleGestureDetector(context, new OnScaleGestureListener() {
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
return true;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
Log.d(LOG_KEY, "zoom ongoing, scale: " + detector.getScaleFactor());
return false;
}
});
Puede alterar temporalmente onTouchEvent:
@Override
public boolean onTouchEvent(MotionEvent event) {
mScaleDetector.onTouchEvent(event);
return true;
}
Si dibuja su Ver a mano, en onScale() probablemente almacene el factor de escala en un miembro, luego invoque invalidate() y use la escala factor al dibujar en su onDraw(). De lo contrario, puede modificar directamente el tamaño de las fuentes o cosas así en onScale().
Información adicional en [Android docs - Arrastrando y Escalando] (https://developer.android. com/training/gestures/scale.html) Observe especialmente el código de ejemplo que muestra cómo combinar la panorámica (desplazamiento) con la escala (zoom de pellizco). – ToolmakerSteve
También existe este proyecto que hace el trabajo y funcionaba perfectamente para mí: https://github.com/chrisbanes/PhotoView
- 1. Implementando Pellizcar y Zoom en Android SurfaceView
- 2. Android web vista pellizcar zoom Problema
- 3. Deshabilitar pellizcar zoom en WebView?
- 4. Pellizcar Acercar vista web [Android]
- 5. pellizcar el zoom para vista personalizada
- 6. ¿Cómo habilitar los controles de zoom y pellizcar el zoom en un WebView?
- 7. Lienzo pellizcar-Zoom a punto dentro de los límites
- 8. iPhone google maps v3 sartenes después de pellizcar zoom
- 9. pellizcar el zoom para la vista de texto
- 10. Toque dos veces para acercar y pellizcar para hacer zoom en ImageView en android
- 11. ¿Hay una API incorporada para manejar la funcionalidad de pellizcar-zoom en Android
- 12. ¿Se puede usar el detector de gestos de escala para pellizcar el zoom en Android?
- 13. Pellizcar Acercar Android con Phonegap y jQUERY Mobile
- 14. ViewPager Android con ImageView con zoom
- 15. detectando pellizcar para ampliar en iOS
- 16. AVCaptureDevice Camera Zoom
- 17. Pinch/especificación de vista de zoom funciona en el iPhone, pero no en Android
- 18. Pellizcar para acercar con Osmdroid
- 19. Zoom y arrastre una imagen en android
- 20. Efecto de zoom en Android SurfaceView
- 21. Galería de Android con zoom de pellizco
- 22. ¿zoom de imagen multitouch de Android?
- 23. Cómo hacer zoom ImageView en Android
- 24. zoom Mapas de Google Android a otro
- 25. Pinch-zoom con GLSurfaceView
- 26. vistaweb androide imagen local pizca de zoom
- 27. ios - Pellizcar/acercar con la escala actual
- 28. Biblioteca de gráficos HTML5 que admite el zoom pellizco
- 29. ¿Hacer zoom en el navegador es lo mismo que hacer zoom en un dispositivo móvil?
- 30. JQuery Mobile Pinch Zoom Image Only
esta pregunta no tendrá ningún valor, una vez que los enlaces bajan. Al menos cita las partes relevantes. –
FYI, esta respuesta no está actualizada. [ScaleGestureDetector] (https://developer.android.com/reference/android/view/ScaleGestureDetector.html) es la respuesta de Android para el zoom de pellizco, desde API 8.Ver [respuesta de Emanuel] (http://stackoverflow.com/a/11722858/199364). – ToolmakerSteve