Drawing touches
To illustrate one possible scenario for reacting to the touch input, let's draw a circle every time the user touches (or clicks) the screen.
A Widget
has an on_touch_down
event that will come in handy for this task. We're interested in just the coordinates of every touch for the time being, and they are accessible as follows:
class CanvasWidget(Widget): def on_touch_down(self, touch): print(touch.x, touch.y)
This example prints the position of touches as they occur. To draw something on the screen instead, we will use the Widget.canvas
property. Kivy's Canvas
is a logical drawable surface that abstracts away the underlying OpenGL renderer. Unlike the low-level graphical API, the canvas is stateful and preserves the drawing instructions that were added to it.
Speaking of drawing primitives, many of those can be imported from the kivy.graphics
package. Examples of drawing instructions are Color
, Line
, Rectangle
, and Bezier
, among others.