Hello,
2 years ago i already had the idea of this view, but I failed in some places, but now I have taken up the challenge and the result is impressive.
Inspired by @Johan Schoeman FabricView and CanvasView.
	
	
		
			
	
Features
		 
	
Draw what you want
		 
	
use a eraser
		 
	
set a background image
		 
	
draw lines
		 
	
Examples
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
AS Draw
Author: Alexander Stolte
Version: 1.08
Changelog

	 
			
			2 years ago i already had the idea of this view, but I failed in some places, but now I have taken up the challenge and the result is impressive.
Inspired by @Johan Schoeman FabricView and CanvasView.
B4J: jXUI, JavaObject
B4A: XUI
B4i: iXUI
		B4A: XUI
B4i: iXUI
- cross-platform compatible
- set a background image
- draw, erase or draw lines
- undo and redo
- clear all
- set color, thickness and background color
- enable or disable the drawing
- import and export the drawing for later use
- export the drawing as image or the complete view
Draw what you want
use a eraser
set a background image
draw lines
Examples
			
				Save the drawing with background image:
			
		
		
		    Dim Out As OutputStream
    Out = File.OpenOutput(File.DirApp, "Test.png", False)
    ASDraw1.ImageComplete.WriteToStream(Out, 100, "PNG")
    Out.CloseAuthor: Alexander Stolte
Version: 1.08
- ASDraw- Events:- Touch (Action As Int, XY As Map)
 
- Functions:- BackgroundImage_setImage (image As B4XBitmap, KeepAspectRatio As Boolean) As String
 sets a background image
- Class_Globals As String
- Clear As String
- DesignerCreateView (Base As Object, Lbl As Label, Props As Map) As String
 Base type must be Object
- DrawMode_DRAW As String
- DrawMode_ERASE As String
- DrawMode_LINE As String
- ExportDrawing  As List
 export the drawing as list to import this later or to save it for later use, for example: the user make a break
- getBackgroundColor  As Int
 gets or sets the View Background Color
- getBackgroundImage  As B4XBitmap
 gets the background image
- getDrawMode As String
- getEnable  As Boolean
 gets or sets the draw enable, if false then the touch event is ignored
- getImage  As B4XBitmap
 gets the drawing as image
- getImageComplete  As B4XBitmap
 gets the complete view as image
- getStrokeColor  As Int
 gets or sets the color of the draw line
- getStrokeWidth  As Float
 gets or sets the thickness of the draw line
- ImportDrawing (drawings As List, new As Boolean) As String
 import a exported list of drawings
 new: if false then the items in the list are added to the existing ones
 new: if true then the intern list is reset
- Initialize (Callback As Object, EventName As String) As String
- IsInitialized  As Boolean
 Tests whether the object has been initialized.
- Redo As String
- setBackgroundColor (color As Int) As String
- setDrawMode (mode As String) As String
- setEnable (enable As Boolean) As String
- setStrokeColor (color As Int) As String
- setStrokeWidth (width As Float) As String
- Undo As String
 
- BackgroundImage_setImage (image As B4XBitmap, KeepAspectRatio As Boolean) As String
- Properties:- BackgroundColor As Int
 gets or sets the View Background Color
- BackgroundImage As B4XBitmap [read only]
 gets the background image
- DrawMode As String
- Enable As Boolean
 gets or sets the draw enable, if false then the touch event is ignored
- Image As B4XBitmap [read only]
 gets the drawing as image
- ImageComplete As B4XBitmap [read only]
 gets the complete view as image
- StrokeColor As Int
 gets or sets the color of the draw line
- StrokeWidth As Float
 gets or sets the thickness of the draw line
 
- BackgroundColor As Int
 
- Events:
Changelog
- 1.0- Release
 
- 1.01- Fix B4J Draw Bug
- Fix Import
- Fix Resize
 
- 1.02- Add Property BackgroundImage_setImage - sets a background image behind the drawing
- Add Property BackgroundImage - gets the background image
- Add Event Touch
 
- 1.03
- 1.04- Bug Fixes
 
- 1.05- Add CropImageOnExport - exports the image with its dimensions and from the painted
 
- 1.06- Add RotateImage - rotate the background image to the degree you want
 
- 1.08- BugFix better resize handling with background images
- Intern Function IIF renamed to iif2
 
- 1.09- BugFix - ExportDrawing
- Intern Function iif2 replaced with the core iif function
 
- 1.10- BugFixes
 
Attachments
			
				Last edited: 
			
		
	
							 
				
 
 
		 
 
		 
 
		