A new canvas drawing library for Android. Aims to be the Fabric.js for Android. Supports text, images, and hand/stylus drawing input. The library has a website and API docs, check it out

Related tags

UI/UX FabricView
Overview

FabricView - Build Status Android Arsenal

A new canvas drawing library for Android. The library was born as part of a project in SD Hacks (www.sdhacks.io) on October 3rd. It is currently under construction and will be refactored and polished in the coming weeks! Stay tuned.

Why? From Doodling on the screen and unleashing the user's creativity to capturing his signature for authentication purposes... The limit is your imagination.

Sample Screen Recording

Screenshot1

How to use? As easy as 1, 2, 3!

Please note this is an alpha build, not feature complete, and can be buggy. If you find any bugs, report them to us here!

  1. Add JitPack to your build.gradle at the end of repositories

    
    
allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
        ...
    }
}
 ```
  1. Add FabricView to your dependencies

      	dependencies {
               compile fileTree(include: ['*.jar'], dir: 'libs')
      	        compile 'com.github.antwankakki:FabricView:latest'
               ...
      	}
  2. Add the following to your layout xml file

     <com.agsw.FabricView.FabricView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/faricView"
         android:layout_centerHorizontal="true"
         android:layout_alignParentBottom="true" />
  3. You are done! You can now reference it in your classes and do all kinds of cool things with it. Check out the api to see what it can do at http://antwankakki.github.io/FabricView/javadoc/

0.1 Milestone Progress

  • Multiple Input Colors
  • Multiple standard background modes (Notebook style, Graph paper...)
  • Export canvas as image
  • Performance (Redraw only parts of the screen that need to be redrawn)
  • Background Support
  • Images support
  • Undo/Redo Support - ToDo
  • Drawing Text captured directly from keyboard. - ToDo
  • Allowing Resize when inserting images. - ToDo
  • onCanvasChanged Event - ToDo

Future plans

  • Layers and Groups
  • More complex objects
  • Transparency
  • Rotations, translations, scalings

Thanks to...

Comments
  • getRotation has effect?

    getRotation has effect?

    1、Interactive Modes, Like ROTATE_MODE, it can rotate the canvas or bitmap?? for example, i want to rotate the Text which has been chosen, can it work?

    2、If i want to put a pic or text on somewhere i touch, how can i do? how can i get the touchEvent x,y coordinate?

    opened by eling13 10
  • This dependency does't work correctly while I synced it with Gradle

    This dependency does't work correctly while I synced it with Gradle

    Please let me know if the version number of Fabric View has been changed or not as I tried the -snapshot and its doenst work nor compiled to see that package.

    Many Thanks

    opened by anasquedan 5
  • Multiple quality improvements

    Multiple quality improvements

    This pull request is focused on resolving occurrences of Sonar rules squid:S1068 - Unused private fields should be removed squid:S2293 - The diamond operator ("<>") should be used squid:ClassVariableVisibilityCheck - Class variable fields should not have public accessibility

    You can find more information about the issues here: https://dev.eclipse.org/sonar/coding_rules#q=squid:S1068 https://dev.eclipse.org/sonar/coding_rules#q=squid:S2293 https://dev.eclipse.org/sonar/coding_rules#q=squid:ClassVariableVisibilityCheck

    Please let me know if you have any questions.

    M-Ezzat

    opened by m-ezzat 2
  • Method to check if FabricView is changed by user

    Method to check if FabricView is changed by user

    There should be a method to check if FabricView is changed by user, this can be used to drive menu and other UI logics (eg: warn user there is can before they want to close activity to prompt them to save change)

    opened by ghost 2
  • Merged from Emmanuel's version of the project.

    Merged from Emmanuel's version of the project.

    Made changed the version of Gradle and Android OS to the latest. Fixed undo/redo. Added markSaved() and isSaved() functions. Change in the hierarchy: now we have the concept of Transform (rotation, scale, translation). This will improve the undo system.

    opened by emmanuelproulx 0
  • squid:S3052 - Fields should not be initialized to default values

    squid:S3052 - Fields should not be initialized to default values

    This pull request is focused on resolving occurrences of Sonar rule squid:S3052 - Fields should not be initialized to default values

    You can find more information about the issue here: https://dev.eclipse.org/sonar/coding_rules#q=squid:S3052

    Please let me know if you have any questions.

    M-Ezzat

    opened by m-ezzat 0
  • Methods indicated in docs missing in FabricView class

    Methods indicated in docs missing in FabricView class

    Hi @emmanuelproulx

    I have looked at the docs under the wiki and a number of methods are missing. I understand that this library is still in development, however, it seems that these methods, such as myFabricView.setDeleteIcon(deleteIcon) myFabricView.undo(); etc should be in place, given that they are mentioned in the docs.

    Has the latest version been released?

    Thanks

    opened by ChrisLMills 2
Releases(latest)
  • latest(Jan 19, 2017)

    This is the first alpha release, the following features are supported

    • Multiple Input Colors
    • Multiple standard background modes (Notebook style, Graph paper...)
    • Export canvas as image
    • Performance (Redraw only parts of the screen that need to be redrawn)
    • Background Support
    • Images support
    Source code(tar.gz)
    Source code(zip)
A View on which you can freely draw, customizing paint width, alpha and color, and take a screenshot of the content. Useful for note apps, signatures or free hand writing.

FreeDrawView A View that let you draw freely on it. You can customize paint width, alpha and color. Can be useful for notes app, signatures or hands-f

Riccardo Moro 643 Nov 28, 2022
Drawing App: A simple drawing application that allows the user to draw using a pencil or using shapes

Drawing-App Drawing app is a simple drawing application that allows the user to

Nada Feteiha 1 Oct 5, 2022
TileView is a subclass of android.view.ViewGroup that asynchronously displays, pans and zooms tile-based images. Plugins are available for features like markers, hotspots, and path drawing.

This project isn't maintained anymore. It is now recommended to use https://github.com/peterLaurence/MapView. MapView is maintained by Peter, one of o

Mike Dunn 1.5k Dec 29, 2022
Compose app with dummy data which serves as a playground to try out new things in the Android world.

Music Event Manager Compose app with dummy data which serves as a playground to try out new things in the Android world. Description The app primarily

Igor Tepavac 4 Apr 4, 2022
A simple use of canvas to make real life clock

ClockView A simple use of canvas to make real life clock PR-viewer

Kishan Kumar 0 Dec 18, 2021
TourGuide is an Android library that aims to provide an easy way to add pointers with animations over a desired Android View

TourGuide TourGuide is an Android library. It lets you add pointer, overlay and tooltip easily, guiding users on how to use your app. Refer to the exa

Tan Jun Rong 2.6k Jan 5, 2023
Takes the input from the Android MediaPlayer and displays visualizations, like in iTunes or WinAmp

Android Visualizer A View subclass that Takes the input from the Android MediaPlayer and displays visualizations, like in iTunes or WinAmp The Visuali

null 798 Dec 22, 2022
Simple Visualizer from mic input for Android.

Voice Recording Visualizer Simple Visualizer from mic input for Android. Usage @Override protected void onCreate(Bundle savedInstanceState) {

Takayuki Yorikane 542 Nov 24, 2022
Floating label input widgets

Android Floating Label Widgets A set of input widgets with a hint label that floats when input is not empty. Demo A demo of the widget is worth a thou

MarvinLabs 450 Nov 25, 2022
Animated SVG Drawing for Android

AnimatedSvgView Animated SVG Drawing for Android Usage Get SVG path data and add it to a string array: <string-array name="google_glyph_strings"> <i

Jared Rummler 2k Dec 12, 2022
A drawing view for your android application.

Android Draw A drawing view for your android application Download For information : checkout Sample App Code in repository. Dependency Step 1. Add the

Divyanshu Bhargava 409 Dec 30, 2022
This project has been superseded by SuperSLiM, a layout manager for RecyclerView. I strongly recommend using SuperSLiM and not StickyGridHeaders.

StickyGridHeaders Replacement project at SuperSLiM This repository is abandoned and will no longer see any development or support. The replacement Sup

Tonic Artos 1.5k Nov 15, 2022
A MaterialChipSetWidget is used to hold multiple chipsets 🤩 and each chipset has multiple values. 🔖

A MaterialChipSetWidget is used to hold multiple chipsets ?? and each chipset has multiple values. ??

Justin George 38 Sep 21, 2022
An Android library supports badge notification like iOS in Samsung, LG, Sony and HTC launchers.

ShortcutBadger: The ShortcutBadger makes your Android App show the count of unread messages as a badge on your App shortcut! Supported launchers: Sony

Leo Lin 7.2k Dec 30, 2022
DailyTags - a flexible markdown library that supports custom tags and markups

The library parses a given markup into rich text for Jetpack Compose. DailyTags comes with Markdown and HTML support by default (please, see the supported features) and is very easy to extend to support custom markups.

Dmytro 134 Dec 25, 2022
A Material design Android pincode library. Supports Fingerprint.

LolliPin A Lollipop material design styled android pincode library (API 14+) To include in your project, add this to your build.gradle file: //Loll

Omada Health 1.6k Nov 25, 2022
Drag and drop to reorder items in a list, grid or board for Android. Based on RecyclerView. Also supports swiping items in a list.

DragListView DragListView can be used when you want to be able to re-order items in a list, grid or a board. It also supports horizontal swiping of it

Magnus Woxblom 658 Nov 30, 2022
🎨 Android colorpicker for getting colors from any images by tapping on the desired color.

ColorPickerView ?? ColorPickerView implements getting HSV colors, ARGB values, Hex color codes from any image drawables or your gallery pictures by ta

Jaewoong Eum 1.3k Dec 26, 2022