Was ist das Android-Äquivalent von java.awt.geom.Area?

8

Ich möchte komplexe Formen als Schnittpunkt zweier Kreise und eines Rechtecks ​​erstellen. Nach ein wenig Recherche scheint die Klasse java.awt.geom.Area perfekt für diese Aufgabe zu sein .

Ich war jedoch bestürzt, als ich entdeckte, dass das awt -Paket nicht mit dem Android-SDK geliefert wurde. Kennt jemand Alternativen für Android, mit denen ich komplexe Formen erstellen kann, indem Sie die Vereinigung und Schnittmenge einfacher Formen definieren?

Hinweis: Das Verwenden von Grafik-Clipping zum Zeichnen der Form funktioniert nicht, da ich nicht nur die Formen zeichnen möchte, sondern auch die Shapes im Speicher speichern möchte, um Kollisionserkennung und andere Interaktionen durchzuführen.

    
Razor Storm 02.11.2012, 04:25
quelle

2 Antworten

5

Android-Alternativen zu java.awt.geom.Area

BEARBEITEN : @numan hat auf eine ausgezeichnete -Option hingewiesen, die einige Klassen im Android-SDK verwendet, die mir zum Zeitpunkt der ursprünglichen Antwort nicht bekannt waren:

Ссылка Ссылка

Mit

Region können Sie geometrische Bereiche definieren. Anschließend können Sie mithilfe von Region s op() method mit Region.Op enum Schnittpunkte und komplexere Formen berechnen.

Einige andere Optionen

Sie können eine Canvas verwenden, um benutzerdefinierte Formen zu zeichnen, insbesondere mit den Methoden clip *:

Ссылка

Hier sind einige Seiten über 2D-Grafiken in Android:

Ссылка Ссылка Ссылка

Einige andere gute Optionen, wenn Ihre Grafiken gleich bleiben (oder ungefähr die gleichen) sind XML-basiert:

Ссылка

Und eine Lösung, die ich ziemlich gut finde, sind 9-patch Zeichensätze:

Ссылка

Kollisionserkennung Es könnte für Ihre Zwecke zu viel werden, aber es gibt eine Reihe von Spielphysik-Bibliotheken:

Ссылка Ссылка

Ссылка

Ссылка

Ссылка

Grundlagen zu Android, libgdx und box2d

Oder Sie können Ihre eigene Lösung rollen:

Ссылка

Ссылка

Ссылка

Kollisionserkennung für gedrehte Bitmaps auf Android

Es hängt wirklich vom Zweck ab; Für Spiele wäre es wahrscheinlich das Beste, einfach eine Bibliothek zu benutzen. Aber wenn die Kollisionserkennung die einzige Funktion ist, die Sie benötigen, sollten Sie es selbst tun, um Ressourcen zu sparen.

Extra Credit: Einige Indizes von Android-Bibliotheken

Ссылка

Ссылка

Ссылка

    
CodeShane 02.11.2012, 04:36
quelle
2

Android UI takelit verwendet Skia für die Grafikdarstellung und skia verwendet die Region Abstraktionen für Formoperationen an Formen (z. B. Schnittmenge, Vereinigung, subtrahieren. siehe Region.Op-Klasse) Formen aus Pfaden oder Rect.

Mit der Region.quickContains-Methode oder der Region.quickReject-Methode erhält die Region-Klasse außerdem eine einfache Kollisionserkennung.

    
numan salati 25.07.2013 16:20
quelle

Tags und Links