Implement Canvas into your NativeScript apps.

Usage no npm install needed!

<script type="module">
  import nativescriptCommunityUiCanvas from 'https://cdn.skypack.dev/@nativescript-community/ui-canvas';


npm npm GitHub forks GitHub stars


  • tns plugin add @nativescript-community/ui-canvas

Be sure to run a new build after adding plugins to avoid any issues.


2.x => 3.x

The Shapes component was removed, simply put your shapes directly under the CanvasView


The nativescript Canvas is based on the Android Canvas class. The android API is actually a direct subclass with some Additions

Plain NativeScript

IMPORTANT: Make sure you include xmlns:cv="@nativescript-community/ui-canvas" on the Page element


<Page xmlns:cv="@nativescript-community/ui-canvas">
    <StackLayout horizontalAlignment="center">
        <cv:CanvasView width="100" height="100" draw="draw"/>

NativeScript + Angular

import { registerElement } from 'nativescript-angular/element-registry';
import { CanvasView } from '@nativescript-community/ui-canvas';
registerElement('CanvasView', () => CanvasView);
<CanvasView width="100" height="100" (draw)="draw($event)></CanvasView>

NativeScript + Vue

import Vue from 'nativescript-vue';
import CanvasPlugin from '@nativescript-community/ui-canvas/vue';

<CanvasView  width="100" height="100" @draw="draw"/>

Draw Method

function draw(event: { canvas: Canvas }) {
    const paint = new Paint();
    paint.setColor(new Color('black'));
    paint.strokeWidth = 10;
    canvas.drawRect(createRect(0, 0, 200, 100), paint);