Tirar a la animación del zumbido
Muchos de nosotros debemos haber encontrado aplicaciones como Tinder y Dripper donde puedes tirar hacia abajo en la vista que contiene una imagen y la imagen se amplía. Y luego, cuando la dejas ir, la imagen se aleja para volver a su estado de origen.
Tomemos un ejemplo de Tinder:
- ¿Es posible descargar imágenes de la memoria caché en picasso?
- Android - Dibujar en la parte superior de una imagen
- Menú contextual para guardar imágenes en una vista web de Android
- ¿Cómo controlar el tamaño de la imagen en el menú?
- Imágenes con: nopm: in filename
Estado original: y estado de acercamiento al tirar:
En iOS se hace por
- (void)viewDidLoad { [super viewDidLoad]; self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"church-welcome.png"]]; self.imageView.contentMode = UIViewContentModeScaleAspectFill; self.cachedImageViewSize = self.imageView.frame; [self.tableView addSubview:self.imageView]; [self.tableView sendSubviewToBack:self.imageView]; self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 170)]; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat y = -scrollView.contentOffset.y; if (y > 0) { self.imageView.frame = CGRectMake(0, scrollView.contentOffset.y, self.cachedImageViewSize.size.width+y, self.cachedImageViewSize.size.height+y); self.imageView.center = CGPointMake(self.view.center.x, self.imageView.center.y); } }
Dado que mi experiencia en Objective C e iOS es muy limitada, no puedo implementarla en Android.
Esto es lo que creo que debería hacerse:
- Coge el gesto desplegable
- Aumentar la altura de la vista por la cantidad de tracción
- Hacer una cierta clase de animación de la escala en la imagen para caberla en la visión ampliada
¿Alguien tiene alguna idea si hay alguna biblioteca que podría ser utilizada para este propósito?
- Cómo hacer la imagen de fondo de la aplicación para Android repetir
- Imagen de Android vista de la gravedad
- Byte a la imagen de android
- Enderezamiento de la imagen en Android
- ¿Mostrar una miniatura borrosa antes de descargar toda la imagen (como en Whatsapp)?
- Cargando parcialmente las imágenes de la URL, como lo que se implementa en WhatsApp
- Android Image Dialog / Popup mismo tamaño que la imagen y sin frontera
- Android SkImageDecoder :: Factory devuelto null Error
Echa un vistazo a este proyecto:
https://github.com/Gnod/ParallaxListView
Si lo combina con la biblioteca ViewPagerIndicator, obtendrá el conjunto de características de la página de perfil de Tinder
Creo que la forma más fácil es anular el método onTouchEvent de View.
Algo como esto:
boolean inZoom = false; float prevY = 0; @Override public boolean onTouchEvent(MotionEvent event) { float eventY = event.getY(); float eventX = event.getX(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if(touchedTheImage(eventX, eventY)){ setZoomCenter(eventX, eventY); prevY = eventY; inZoom = true; return true; } break; case MotionEvent.ACTION_MOVE: if(inZoom){ changeZoomLevel(prevY, eventY); return true; } break; case MotionEvent.ACTION_UP: if(inZoom){ resetZoomLevel(); inZoom = false; return true; } break; } return false; }
EDIT: para la parte de animación, considere esta publicación: https://stackoverflow.com/a/6650473/3568892
- ¿Hilo principal haciendo demasiado trabajo debido a llamadas asincrónicas de Firebase?
- ¿Cuáles deberían ser las razones para usar OpenSL ES en lugar de AudioTrack en Android?