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.Close
	Author: 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: 
			
		
	
							
				