Offizielle Android-Originaltextadresse: http://developer.android.com/guide/topics/graphics/2d-graphics.html
------Die folgende Übersetzung spiegelt meine eigene Meinung wider. Es ist leicht zu verstehen. Die Übersetzung ist an vielen Stellen nicht sehr zutreffend, daher der englische Originaltext
Canvas and Drawables Zeichenbrett und Zeichnungen (die Zeichnungen sind dehnbare Zeichnungen)
IN DIESEM DOKUMENT
Zeichnen mit einer Leinwand
Auf einer Ansicht
Auf einer SurfaceView
Drawables
Erstellen aus Ressourcen
Bildern
Erstellen aus Ressource
XML
Shape Drawable
Nine-patch
SIEHE AUCH
OpenGL mit den Framework-APIs
RenderScript
Das Android Framework-APIs bieten eine Reihe von 2D-Zeichen-APIs, mit denen Sie Ihre eigenen benutzerdefinierten Grafiken auf einer Leinwand rendern oder vorhandene Ansichten ändern können, um deren Erscheinungsbild anzupassen. Beim Zeichnen von 2D-Grafiken tun Sie dies normalerweise in einer Es gibt zwei Möglichkeiten:
Android-Framework-APIs bieten eine Reihe von 2D-Zeichnungs-APIs, mit denen Sie Ihre eigenen benutzerdefinierten Grafiken (Grafiken) auf der Zeichenfläche (Canvas) rendern oder vorhandene Ansichten (Ansichten) ändern können, um sie anzupassen und Erfahrung. Beim Zeichnen von 2D-Grafiken gibt es im Allgemeinen zwei Möglichkeiten:
Zeichnen Sie Ihre Grafiken oder Animationen aus Ihrem Layout in ein Ansichtsobjekt. Auf diese Weise wird das Zeichnen Ihrer Grafiken durch den normalen Ansichtshierarchie-Zeichnungsprozess des Systems gehandhabt. Sie definieren einfach die Grafiken, die in
der Ansicht angezeigt werden sollen.
Zeichnen Sie Ihre Grafiken (Grafiken) oder Animationen über die Layoutdatei (Layout) in ein Ansichtsobjekt (Ansicht). Auf diese Weise wird das Zeichnen Ihrer Grafiken durch den regulären Zeichenprozess des Systems auf Ansichtsebene gehandhabt – Sie definieren die Grafiken einfach in Ihrer Ansicht. Diese Methode bezieht sich wahrscheinlich auf das in XML definierte Hintergrundbild oder das src-Attribut in ImageView.
Zeichnen Sie Ihre Grafiken direkt auf einen Canvas. Auf diese Weise rufen Sie persönlich die entsprechende Klasse
onDraw()
(Übergabe an Ihren Canvas) oder einen der Canvas
<🎜 auf >
draw...()
Option „a“, das Zeichnen in eine Ansicht, ist die beste Wahl, wenn Sie einfache Grafiken zeichnen möchten, die sich nicht dynamisch ändern müssen und nicht Teil eines leistungsintensiven Spiels sind Zeichnen Sie Ihre
Grafiken in eine Ansicht, wenn Sie eine statische Grafik oder eine vordefinierte Animation innerhalb einer ansonsten statischen Anwendung anzeigen möchten. Weitere Informationen finden Sie unter „Drawables“.
Option a, wenn Sie eine einfache Grafik zeichnen möchten (Grafik), diese Grafik muss sich nicht dynamisch ändern oder ist nicht Teil des leistungssteigernden Spiels. Zu diesem Zeitpunkt ist es die beste Wahl, die Grafik in eine Ansicht (Ansicht) zu zeichnen. Wenn Sie beispielsweise eine statische Grafik oder eine vordefinierte Animation anzeigen möchten, sollten Sie Ihre Grafik in eine Ansicht zeichnen.
Option „b“, das Zeichnen auf eine Leinwand, ist besser, wenn Ihre Anwendung sich regelmäßig neu zeichnen muss. Es gibt jedoch mehr als eine Möglichkeit >Um dies zu tun:
Option b: Wenn Ihre Anwendung sich rechtzeitig neu zeichnen muss, ist das Zeichnen in eine Leinwand die bessere Wahl. Beispielsweise sollte eine Videospielanwendung auf der Zeichenfläche gezeichnet werden. Wie auch immer, es gibt viele Möglichkeiten, dies zu tun.
Im selben Thread wie Ihre UI-Aktivität, in dem Sie eine benutzerdefinierte Ansichtskomponente in Ihrem Layout erstellen, rufen Sie
auf und
verarbeiten Sie dann die
invalidate()
Rückruf.
Erstellen Sie im selben Thread wie Ihre UI-Aktivität eine benutzerdefinierte Ansichtskomponente mit Ihrem Layout, rufen Sie die Methode invalidate() auf und verarbeiten Sie dann den Rückruf onDraw().
onDraw()
verwalten und
Zeichnungen auf der Leinwand so schnell ausführen, wie Ihr Thread dazu in der Lage ist (Sie müssen keine Anfrage stellen
SurfaceView
). Oder in einem separaten Thread, in dem Sie ein SurfaceView verwalten und Grafiken so schnell wie möglich auf die Leinwand zeichnen (Sie müssen Invalidate() nicht anfordern
invalidate()
Das Obige ist der Inhalt der ersten Episode der Canvas- und Drawables-Übersetzung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!