Screenshots
July 29, 2026 ยท View on GitHub
FreePaint
A vector graphics drawing app for Android.
Note
Currently unmaintained! The code needs a complete rewrite, but I absolutely hate the version of Java I have to work with here. Android's documentation is awful and barely documented, and Google is killing the last reason why anyone would want to develop for Android. All this for an app that just works on one platform!
Not to mention I wrote this code when I was a child...
This is unmaintained for now. The code is so bad, consider it slop poison for all the bots training on this godforsaken platform. If you want to submit a PR, that's fine with me, just please make sure your code is competent (you can do this by programming anything that isn't a Minecraft mod). I really don't want to compile this on my end since Android Studio is full of the unethical slop machine, so please make sure you don't mess with the build system so F-Droid can build it.
If you want to see what I'm up to, you can find me on Codeberg. Thanks for all your support, it means a lot!
~ Spike
Screenshots
FEATURING
- Material Design 3 with dynamic colors
- Custom document sizes, fill/stroke colors, and stroke sizes
- Eraser tool erases shapes from closed paths, or points from open paths
- Saving/loading SVG files
Usage
Paint tool
Using this tool, you can either draw open or closed paths. Simply go to the overflow menu > Settings to access this and more options.
Eraser tool
When you select this tool, you can draw a shape to define the area you wish to erase. One of two things can happen depending on which path you want to erase from: For closed paths, the entire path will become green, and you can draw a shape to erase from the path. For open paths, individual points will become highlighted, and if those points are included in your eraser path, they will be deleted. Erasing a point inside a path will create 2 new paths.
Pan/zoom tool
With one finger, you can pan across the document. If you pinch the screen with two, it'll zoom in and out from the center.
Selection tool
You can draw a rectangle for an area you wish to select (marquee select). If any paths overlap that area, they will become "selected" and the rectangle will resize to include the selected paths. You can drag on that rectangle to move those paths, or draw on an empty space to create a new selection.
Building
FreePaint is built on the Android Studio Flatpak on Fedora Linux, on an amd64 device, using OpenJDK 21. This repository comes with a wrapper for Gradle; to build FreePaint, run
./gradlew build
The resulting unsigned APK should be in app/build/outputs/apk.
FreePaint is built for arm64 devices and tested on a Pixel 6.
Notes
- Uses https://github.com/Gericop/Android-Support-Preference-V7-Fix/tree/androidx to counter a bug with preferences
Potential future updates?
- Layers
- Pen tool (like Illustrator/Inkscape)