SurfaceView - Zeichentool

  • Antworten:5
Jakob N.
  • Forum-Beiträge: 282

26.08.2014, 00:06:04 via App

Hallo :)
ich möchte ein kleines Zeichentool mit Surfaceview implementieren. Aber bei allen Tutorials, die ich finde, muss man einen eigenen Thread implementieren. Ist das so richtig? Für was gibts dann die draw-Methode.

Weiß jemand vielleicht ein passendes Tutorial?

— geändert am 26.08.2014, 20:20:36

LG Jakob

Antworten
Micha Roth
  • Forum-Beiträge: 26

27.08.2014, 08:53:02 via Website

Hey,

was ist für dich ein kleines Zeichentool? Also was soll es können?

Genaue Infos über die draw-Methode findest du hier:
https://developer.android.com/guide/topics/graphics/2d-graphics.html
Ich verstehe es so, dass draw() benötigt wird, um das Gezeichnete als View-Objekt darzustellen, damit es vom Gerät behandelt werden kann.

Ich weiß, ja nicht, was du machen möchtest, aber ist das hier vielleicht was für dich?

https://stackoverflow.com/questions/7401432/drawing-on-canvas-and-save-image

Was spricht gegen Threadding?

Hier ist noch ein Tutorial, wo Surface verwendet wird ohne Threadding, allerdings weiß ich überhaupt nicht, ob dir das bei deinem Zeichentool hilft:

https://www.youtube.com/watch?v=81S9IyOvMZk

Gerne mal anschauen:

stirnraten.de

— geändert am 27.08.2014, 08:54:58

Antworten
Jakob N.
  • Forum-Beiträge: 282

27.08.2014, 13:14:46 via App

Danke für die Links werde sie mir in den nächsten Tagen anschauen :)

Also man soll einfach "zeichnen" können, sprich nur Linien (glaube dass kann man mit Path machen). Und im Grunde einmal in schwarz, will dann aber mehrere Farben supporten.

LG Jakob

Antworten
Jakob N.
  • Forum-Beiträge: 282

29.08.2014, 00:36:39 via App

Wie kann ich überprüfen ob ein Touch (x und y) in einem Path liegen? Möchte diesen dann mämlich löschen, sprich einen Radierer simulieren.

LG Jakob

Antworten
Micha Roth
  • Forum-Beiträge: 26

29.08.2014, 01:00:36 via Website

Hey,

um den Radierer zu simulieren, würde ich die Farbe übermalen. Z.B. Hintergrund weiß, Linie in Schwarz, also Radierer malt mit weiß.

Oder du benutzt context.clearRect ( x , y , w , h );

Dort musst du die Koordinaten nur übergeben. Wie du die bekommst, sagt dir bestimmt google ;)

Gerne mal vorbeischauen bei

Stirnraten

Antworten
Jakob N.
  • Forum-Beiträge: 282

29.08.2014, 18:18:07 via App

Danke! Wie kann ich dem User anzeigen was er gerade mit dem Radierer löscht? Sprich ein Icon anzeigen wo der Display berührt wird.

Und wie kann ma aus dem gezeichneten ein Bild abspeichern?

LG Jakob

Antworten