Wie bekomme ich die aktuelle Leinwand?

9

Ich habe DrawView. Wenn ich diese Ansicht berühre, werden kleine Kreise gezeichnet. Ich möchte keine Kreise zeichnen, aber die Ansicht nicht berühren - mit der Hilfefunktion "setPoints". Was ich mache:

%Vor%

Bitte sagen Sie mir, wie Sie die setPoints Funktion auslesen können?

Aktualisierung: Wow, es ist wirklich ein interessantes Problem. Meine DrawView enthält in HorizontalScrollView. Denn wenn ich in diesem DrawView richtige Koordinaten einstelle, weiß niemand, wo sich Kreise zeichnen lassen.

    
Leo 10.02.2012, 19:41
quelle

3 Antworten

4

Sie können nicht. Die Zeichenfläche wird vom System verwaltet und an Ihr onDraw() übergeben. Ich verstehe nicht, warum du es draußen brauchen würdest. Redeclare setPoints like this

%Vor%

Sie können einen Cache der vorherigen Zeichnungen speichern (oder die vorherigen Punkte speichern)

    
Raffaele 10.02.2012, 20:08
quelle
1

Versuchen Sie, canvas2 als öffentliche Variable in der DrawView-Klasse zu deklarieren.

    
8oh8 10.02.2012 20:05
quelle
0

Sie zeichnen Ihre Kreise in onDraw() . So soll View funktionieren (technisch ist es tatsächlich in der draw() -Methode, aber wir werden das übersehen). Setzen Sie in setPoints() die Punkte des Kreises in Variablen innerhalb des Klassenbereichs, rufen Sie invalidate() auf, und zeichnen Sie dann den Kreis wie in onDraw() . Wenn Sie dieser Methode folgen, folgen Sie dem Klassenfluss, für den die Ansicht entworfen wurde.

    
DeeV 10.02.2012 20:08
quelle

Tags und Links