react-native-draw-on-screen
v1.0.15
Published
React Native Expo friendly Screen Drawing Component based on HTML Canvas for Android & IOS
Downloads
75
Maintainers
Readme
React Native Draw On Screen
A react native module to allow drawing on screen using touch.
This is based on HTML canvas and pure JavaScript, and only has a dependancy on 'react-native-webview' to display the html.
Works on IOS(Including IOS14)/Android and is Expo friendly.
import React from 'react';
import { StyleSheet, View, SafeAreaView } from 'react-native';
import RNDrawOnScreen from 'react-native-draw-on-screen';
import Controls from './Controls';
export default class App extends React.Component {
state = {
color: 'black',
strokeWidth: 10,
};
changeColor = (color) => {
this.setState({ color });
};
changeBrushSize = (strokeWidth) => {
this.setState({ strokeWidth });
};
undo = () => {
this.RNDraw.undo();
};
clear = () => {
this.RNDraw.clear();
};
render() {
return (
<SafeAreaView style={{ flex: 1 }}>
<Controls
handleColorChange={this.changeColor}
handleBrushSizeChange={this.changeBrushSize}
selectedColor={this.state.color}
selectedStrokeWidth={this.state.strokeWidth}
handleUndo={this.undo}
handleClear={this.clear}
/>
<View
style={{
flex: 1,
flexGrow: 1,
border: 'solid',
borderWidth: 2,
borderColor: '#ccc',
}}
>
<RNDrawOnScreen
penColor={this.state.color}
strokeWidth={this.state.strokeWidth}
ref={(r) => (this.RNDraw = r)}
/>
</View>
</SafeAreaView>
);
}
}