Zeichnen SurfaceView in layout xml
für eine SurfaceView, die ich gemacht habe es aus dem code, könnte ich überschreiben onDraw()
.
Aber wie zu überschreiben, dass onDraw()
aus einer SurfaceView
definiert ist, in ein layout-XML? gibt es eine Möglichkeit, den Zugriff auf die draw()
Methode?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht auf die onDraw-Methode von einer SurfaceView Instanz erklärt und Hinzugefügt, um das layout so:
Die Erklärung oben erstellt eine Instanz von android.Blick.SurfaceView und fügt es zu Ihrem layout. Sie ändern nicht das Verhalten der onDraw-Methode auf die Instanz mehr, als Sie können den code ändern/Verhalten in anderen bereits kompilierte Klasse.
Zu erreichen, was Sie fordern, können Sie Ihre eigene Unterklasse von SurfaceView:
Und dann hinzufügen, dass zu Ihrem layout anstelle des orignal-Vanille SurfaceView, Sie verweisen lediglich auf den voll qualifizierten Namen der Klasse als XML-element in Ihr layout:
Ihre SurfaceView Unterklasse deklariert einen Konstruktor
Context
undAttributeSet
als Parameter. Und vergessen Sie nicht, dass Ihre Oberfläche anzeigen zu implementieren sollteSurfaceHolder.Callback
und registrieren Sie sich, um Ihren SurfaceHolder:Die draw-Methode nicht automatisch aufgerufen werden, aber Sie können stellen Sie sicher, dass Sie den ersten Zustand der view gezeichnet wird, wenn die Oberfläche, das die view initialisiert ist. Ein Rückruf erfolgt zu
surfaceCreated
wo Sie können call der draw-Methode:Vôila!