Seitencroll auf Android implementieren?

Ich war im Internet surfen auf der Suche nach einem schönen Effekt für das Drehen von Seiten auf Android und es scheint einfach nicht eins zu sein. Da ich die Plattform lerne, schien es mir eine schöne Sache zu sein, das zu können.

Ich habe es geschafft, eine Seite hier zu finden: http://wdnun.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 x = (v1.x * cos(rho) - v1.z * sin(rho)); vo->y = v1.y; vo->z = (v1.x * sin(rho) + v1.z * cos(rho)); } } 

Das gibt ein Beispiel (oben) Code für das iPhone, aber ich habe keine Ahnung, wie ich dies auf Android implementieren würde. Könnte einer der Mathe-Götter da draußen mir helfen, wie ich das in Android Java umsetzen würde?

Ist es möglich, die nativen Draw-APIs zu verwenden, müsste ich OpenGL verwenden? Könnte ich das Verhalten irgendwie nachahmen?

Jede Hilfe wäre willkommen. Vielen Dank.

****************BEARBEITEN********************************* *************

Ich habe ein Bitmap-Mesh-Beispiel in den Android-API-Demos gefunden: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/BitmapMesh.html

Vielleicht könnte jemand mir bei einer Gleichung helfen, die obere rechte Ecke einfach nach innen über die Seite nach innen zu falten, um einen ähnlichen Effekt zu erzeugen, den ich später anwenden kann, um mehr Tiefe zu bekommen?

Ich habe gerade ein Open-Source-Projekt erstellt, das eine Seitwärts-Curl-Simulation in 2D unter Verwendung des nativen Canvas bietet: https://github.com/moritz-wundke/android-page-curl Ich arbeite noch daran, Adapter und ähnliches hinzuzufügen mach es als eigenständige Ansicht nutzbar.

  • EDIT: Links aktualisiert.
  • EDIT: Fehlende Dateien wurden zum Repo geschoben.

Ich experimentiere gerade mit dem Sidecurl-Effekt auf Android, mit OpenGL ES im Moment. Es ist eigentlich eine Skizze, aber vielleicht gibt es eine Idee, wie man die Seitencurls für Ihre Bedürfnisse implementiert. Wenn Sie sich für die Implementierung von 3D-Seitenumbrüchen interessieren.

Bezüglich der Formel, auf die du dich beziehst – ich habe es ausprobiert und das Ergebnis nicht zu sehr gemocht. Ich würde sagen, dass es einfach nicht gut auf kleinen Bildschirm passt und begann, eine einfachere Lösung zu hacken.

Code kann hier gefunden werden: https://github.com/harism/android_page_curl/

Während ich dies schreibe, bin ich mitten in der Entscheidung darüber, wie man “falsche” weiche Schatten implementiert – und ob man eine korrekte Anwendung erstellt, um diesen Seitencurl-Effekt zu zeigen. Dies ist auch eine der wenigen OpenGL-Implementierungen, die ich jemals gemacht habe und sollte nicht zu viel als ein gutes Beispiel genommen werden.

Ich bin mir ziemlich sicher, dass Sie OpenGL für einen schönen Effekt verwenden müssen. Die functionen des grundlegenden UI-Frameworks sind ziemlich begrenzt. Sie können nur grundlegende Transformationen (Alpha, Übersetzen, Drehen) für Ansichten mithilfe von Animationen durchführen.

Es könnte also möglich sein, etwas Ähnliches in 2D mit einem FrameLayout und einer benutzerdefinierten Ansicht darin nachzuahmen.