Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Implementar página curl en android?

Yo estaba navegando por la red en busca de un efecto agradable para convertir las páginas en Android y no sólo no parece ser uno. Puesto que estoy aprendiendo la plataforma que parecía una cosa agradable ser capaz de hacer es esto.

Me las arreglé para encontrar una página aquí: http://wdnuon.blogspot.com/2010/05/implementing-ibooks-page-curling-using.html

- (void)deform { Vertex2f vi; // Current input vertex Vertex3f v1; // First stage of the deformation Vertex3f *vo; // Pointer to the finished vertex CGFloat R, r, beta; for (ushort ii = 0; ii < numVertices_; ii++) { // Get the current input vertex. vi = inputMesh_[ii]; // Radius of the circle circumscribed by vertex (vi.x, vi.y) around A on the xy plane R = sqrt(vi.x * vi.x + pow(vi.y - A, 2)); // Now get the radius of the cone cross section intersected by our vertex in 3D space. r = R * sin(theta); // Angle subtended by arc |ST| on the cone cross section. beta = asin(vi.x / R) / sin(theta); // *** MAGIC!!! *** v1.x = r * sin(beta); v1.y = R + A - r * (1 - cos(beta)) * sin(theta); v1.z = r * (1 - cos(beta)) * cos(theta); // Apply a basic rotation transform around the y axis to rotate the curled page. // These two steps could be combined through simple substitution, but are left // separate to keep the math simple for debugging and illustrative purposes. vo = &outputMesh_[ii]; vo->x = (v1.x * cos(rho) - v1.z * sin(rho)); vo->y = v1.y; vo->z = (v1.x * sin(rho) + v1.z * cos(rho)); } } 

Que da un ejemplo (arriba) de código para el iPhone, pero no tengo ni idea de cómo iba a implementar esto en android. ¿Podría cualquiera de los dioses de matemáticas por ahí por favor me ayude con la forma en que iba a implementar esto en Android Java.

¿Es posible usar las API de dibujo nativo, tendría que usar openGL? ¿Podría mimik el comportamiento de alguna manera?

Cualquier ayuda sería apreciada. Gracias.

****************EDITAR********************************* *************

He encontrado un ejemplo de malla de mapa de bits en las demostraciones de API de Android: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapMesh.html

Tal vez alguien me podría ayudar en una ecuación para simplemente doblar la esquina superior derecha en diagonal a través de la página para crear un efecto similar que más tarde se puede aplicar sombras a gie más profundidad?

  • Determine el ángulo de visión de la cámara del teléfono inteligente
  • Comprender claramente el cálculo de la matriz
  • Mostrar una buena fórmula de matemáticas en Android
  • Cálculo de intersecciones entre segmentos de línea
  • Android Dividir el círculo en N partes iguales y conocer las coordenadas de cada punto de división
  • Rectángulo Coordina con Respecto al Ángulo de Rotación
  • 3 Solutions collect form web for “Implementar página curl en android?”

    Acabo de crear un proyecto de código abierto que cuenta con una página curl simulación en 2D con el lienzo nativo: https://github.com/moritz-wundke/android-page-curl Todavía estoy trabajando en él para agregar adaptadores y tal Lo hacen utilizable como una vista independiente.

    • EDIT: Enlaces actualizados.
    • EDIT: Los archivos que faltan se han empujado al repo.

    Estoy haciendo algunos experimentos en el efecto de curl de página en Android usando OpenGL ES en este momento. Es bastante un boceto en realidad, pero tal vez da una idea de cómo implementar página curl para sus necesidades. Si está interesado en la implementación de la página en 3D que es.

    En cuanto a la fórmula a la que se está refiriendo, lo probé y no me gustó mucho el resultado. Yo diría que simplemente no encaja pequeña pantalla muy bien y comenzó a hackear una solución más simple.

    El código se puede encontrar aquí: https://github.com/harism/android_page_curl/

    Mientras escribo esto, estoy en medio de decidir cómo implementar 'falsas' sombras suaves – y si crear una aplicación adecuada para mostrar este efecto de curl de página. También esto es más o menos una de las muy pocas implementaciones de OpenGL que he hecho y no debería tomarse demasiado como un buen ejemplo.

    Estoy bastante seguro, que tendría que usar OpenGL para un efecto agradable. Las capacidades básicas del framework UI son bastante limitadas, solo puedes realizar transformaciones básicas (alpha, translate, rotate) en Views usando animaciones.

    Aunque podría ser posible imitar algo similar en 2D usando FrameLayout y una vista personalizada en él.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.