A pixel art creator for Android using RecyclerView.

Overview

PyxlMoose

A pixel art creator for Android using RecyclerView.


Fri Oct 22 2021 10_20_15 PM

Contributing Guidelines

I would love your input! I have a goal of making contributing to this project as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the code
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

Want to collaborate?

If you want to collaborate with me on the project flick me an email at [email protected].

Use a Consistent Coding Style

Functions:

fun myFunc() {

}

Functions with one line:

fun getInt() = 5 

Functions that return something and have more than one line:

fun getDog(): Dog {
  return Dog()
}

Variables:

val x = "Hello"

Parameters:

fun myFunc(any: Any) {

}

Classes:

class Dog : Animal {

}

Constants:

const val MY_AGE = 15

Ordering of modifiers (from Kotlin documentation):


public / protected / private / internal
expect / actual
final / open / abstract / sealed / const
external
override
lateinit
tailrec
vararg
suspend
inner
enum / annotation / fun // as a modifier in `fun interface`
companion
inline / value
infix
operator
data

Do not use the PyxlMoose name anywhere else other than this project. 😊

Comments
  • F-Droid build failed

    F-Droid build failed

    Describe the bug

    > Task :app:kaptReleaseKotlin
    /home/vagrant/build/com.therealbluepandabear.pixapencil/app/build/tmp/kapt3/stubs/release/com/therealbluepandabear/pixapencil/database/PixelArtDatabase.java:7: error: Schema '3.json' required for migration was not found at the schema out folder: /home/vagrant/build/com.therealbluepandabear.pixapencil/app/schemas/com.therealbluepandabear.pixapencil.database.PixelArtDatabase. Cannot generate auto migrations.
    public abstract class PixelArtDatabase extends androidx.room.RoomDatabase {
                    ^
    
    > Task :app:kaptReleaseKotlin FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':app:kaptReleaseKotlin'.
    > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
       > java.lang.reflect.InvocationTargetException (no error message)
    
    

    Could you please take a look? Thanks!

    🐛 bug difficulty: extremely hard cannot-reproduce 
    opened by linsui 26
  • [R] Release app on F-Droid

    [R] Release app on F-Droid

    Release the app on F-Droid (when the release is stable, so v0.0.1).

    Before adding app to F-Droid, fix the following:

    • [x] #100
    • [x] #97
    • [x] #74
    • [x] #101
    • [x] #102
    • [x] #103
    • [x] #104
    low priority difficulty: unknown 
    opened by therealbluepandabear 14
  • APK availability

    APK availability

    Is your feature request related to a problem? Please describe. Looking where the app can be found so users can install it :smiley:

    Describe the solution you'd like git tag releases so they show up here, then have the release *.apk attached to the release.

    Describe alternatives you've considered Directly bringing it to F-Droid – would require tags as well but not necessarily APK files attached to them.

    Additional context A nice FOSS app like this would be nice to find where Android FOSS apps are at home (F-Droid), but should at least be available outside walled gardens (haven't checked whether your app is listed in any of the latter, though). So looking forward to have it available. Thanks in advance!

    high priority improvement difficulty: unknown important 
    opened by IzzySoft 8
  • [B] Pixels become slightly rectangular in portrait mode on rectangular canvases, causing the grid to not function properly

    [B] Pixels become slightly rectangular in portrait mode on rectangular canvases, causing the grid to not function properly

    In portrait mode (on a rectangular canvas), the pixels become slightly rectangular which causes the grid not to function properly. Without a grid, it is hardly noticeable.

    🐛 bug ❗ extremely high priority difficulty: extremely hard important 
    opened by therealbluepandabear 5
  • [Bug] Blur canvas on Android Oreo or API 27

    [Bug] Blur canvas on Android Oreo or API 27

    Describe the bug When run on android 8 (oreo sdk 27) canvas showing blurry, and when draw color to canvas its also blurred

    To Reproduce Steps to reproduce the behavior:

    1. Open PyxlMoose.
    2. Create new project or Edit Existing Project
    3. Canvas showing blur, draw color also blur

    Expected behavior Canvas not blur, but show sharp pixel

    Screenshots image

    Smartphone (please complete the following information):

    • Emulator Android Studio
    • Android version 8, oreo SDK 27
    opened by muslimsidiq 5
  • won't run

    won't run

    Describe the bug the log is down below.

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    Smartphone (please complete the following information):

    • Device: [e.g. iPhone6]
    • OS: [e.g. iOS8.1]
    • Browser [e.g. stock browser, safari]
    • Version [e.g. 22]

    Additional context 2022-02-11 09:37:18.733 12671-12671/com.realtomjoney.pyxlmoose E/AndroidRuntime: FATAL EXCEPTION: main Process: com.realtomjoney.pyxlmoose, PID: 12671 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.realtomjoney.pyxlmoose/com.realtomjoney.pyxlmoose.activities.main.MainActivity}: android.view.InflateException: Binary XML file line #36 in com.realtomjoney.pyxlmoose:layout/activity_main: Binary XML file line #36 in com.realtomjoney.pyxlmoose:layout/activity_main: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3340) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3489) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2073) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:225) at android.app.ActivityThread.main(ActivityThread.java:7563) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:994) Caused by: android.view.InflateException: Binary XML file line #36 in com.realtomjoney.pyxlmoose:layout/activity_main: Binary XML file line #36 in com.realtomjoney.pyxlmoose:layout/activity_main: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Caused by: android.view.InflateException: Binary XML file line #36 in com.realtomjoney.pyxlmoose:layout/activity_main: Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:858) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1014) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965) at android.view.LayoutInflater.rInflate(LayoutInflater.java:1144) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1105) at android.view.LayoutInflater.inflate(LayoutInflater.java:686) at android.view.LayoutInflater.inflate(LayoutInflater.java:538) at com.realtomjoney.pyxlmoose.databinding.ActivityMainBinding.inflate(ActivityMainBinding.java:68) at com.realtomjoney.pyxlmoose.databinding.ActivityMainBinding.inflate(ActivityMainBinding.java:62) at com.realtomjoney.pyxlmoose.activities.main.MainActivity_setBindingsKt.setBindings(MainActivity+setBindings.kt:6) at com.realtomjoney.pyxlmoose.activities.main.MainActivity.onCreate(MainActivity.kt:23) at android.app.Activity.performCreate(Activity.java:7893) at android.app.Activity.performCreate(Activity.java:7880) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3315) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3489) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2073) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:225) at android.app.ActivityThread.main(ActivityThread.java:7563) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:994) 2022-02-11 09:37:18.733 12671-12671/com.realtomjoney.pyxlmoose E/AndroidRuntime: Caused by: java.lang.IllegalArgumentException: This component requires that you specify a valid TextAppearance attribute. Update your app theme to inherit from Theme.MaterialComponents (or a descendant). at com.google.android.material.internal.ThemeEnforcement.checkTextAppearance(ThemeEnforcement.java:185) at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:116) at com.google.android.material.navigation.NavigationBarView.<init>(NavigationBarView.java:149) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:108) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:103) at com.google.android.material.bottomnavigation.BottomNavigationView.<init>(BottomNavigationView.java:98) ... 28 more 2022-02-11 09:37:18.770 12671-12671/com.realtomjoney.pyxlmoose I/Process: Sending signal. PID: 12671 SIG: 9

    🐛 bug mid priority further context needed 
    opened by lilcheti 4
  • [Improvement] Change icons for darken/lighten tool

    [Improvement] Change icons for darken/lighten tool

    Improvement description

    Change the current icon of the darken/lighten tool to something more clear.

    Why is this improvement important to add?

    Because some users are getting confused by the icons as to what the tools do.

    ❗ extremely high priority improvement difficulty: easy 
    opened by therealbluepandabear 2
  • [#1-bug-priority] [MB] Tapping 'Extract From Canvas' in 'New Color Palette' screen causes app to crash (SOMETIMES) on certain (predominantly large) canvases

    [#1-bug-priority] [MB] Tapping 'Extract From Canvas' in 'New Color Palette' screen causes app to crash (SOMETIMES) on certain (predominantly large) canvases

    Tapping 'Extract From Canvas' here:

    image

    ... and then pressing 'Done' on large canvases (rectangular?) causes the app to crash in some scenarios. It's very strange as it only gets occasionally reproduced -- it's very hard to decipher what's exactly causing the bug because of its rarity but it ought be fixed.

    🐛 bug ❗ extremely high priority difficulty: hard reproduced 
    opened by therealbluepandabear 1
  • Change color of transparent background

    Change color of transparent background

    Is your feature request related to a problem? Please describe. The default white/gray checkerboard to represent a transparent background is quite distractrng.

    Describe the solution you'd like The ability to change the color(s) for representing a transparent background

    Describe alternatives you've considered The ability to make the checkerboard not align with the image pixels so it doesn't look like it's part of the image

    opened by xigoi 1
  • Internet permission declared but not used?

    Internet permission declared but not used?

    This app's manifest declares that it uses android.permission.INTERNET, but there doesn't appear to be any network functionality. If this permission is intended, it could be helpful to describe what it's for; otherwise, removing it seems reasonable for security- and privacy-conscious users.

    opened by t-m-w 1
  • Brazilian Portuguese Translation

    Brazilian Portuguese Translation

    These are the translation for the description and changelogs into Brazilian Portuguese. I took the liberty to make some changes like instead of the word 'phone' I'm using the word 'device', because we don´t know if the user is really using a phone. Also added the features section into the F-Droid description. Now in the app it self, in the tools description I gave a small explanation of how to use it, as if someone who isn't used to this kind of app would create some art for the first time (it may really be the case). I'm kind of new in this github thing so please forgive me if I did something wrong. It's a great app you are giving us Many thanks!!!!

    opened by EddieMattos 1
  • [F] Revamp welcome screen

    [F] Revamp welcome screen

    Revamp the welcome screen, something like Telegram/Pixel style.

    There will be an image-based tutorial instead of the current interactive-based tutorial.

    The user will be able to swipe between the different slides in the new welcome screen to learn more about the app, as well as help set the app's settings to their needs.

    image

    image

    ✨ enhancement low priority difficulty: hard 0.2.0 
    opened by therealbluepandabear 0
  • Register to be an image source

    Register to be an image source

    Another feature you could add is the capture image function, to send an image to another app. Camera apps can, so can drawing apps. example: https://github.com/SimpleMobileTools/Simple-Draw and try adding an image to a phone contact. Treat this one as optional! I think i have already given you much to do!

    opened by Noitarud 0
  • Colour Multientry

    Colour Multientry

    While entering as i said in #261, i am finding entering tedious, repeating these steps: •+Add •press Hex •tap in the address •Done

    Options: •Have an empty box below for 'next' and create more if the last gets used (columns for rgb). •next/last key, also lets review of existing entries. • or both, show table(RGB)/list(Hex). Allows comparison of new and existing.

    ✨ enhancement low priority difficulty: extremely hard 0.2.0 
    opened by Noitarud 3
  • [I] Add some extra Palettes

    [I] Add some extra Palettes

    I notice you are using a colour selection from Wikipedia's "List of colors: A–F" these colours are apparently not using discrete steps and that list is poorly representative of the spectrum and is using irregular colour codes (and artists names for them). I would like regular colours for my diagrams (eg 16bit uses 0/50/100% of R,G,B,RG,GB,BR,RGB and 75% of RGB). I know I can enter them but this is an opportunity to add another palette, and this suggestion could inspire a different picker #227 (else additional).

    Can you create a palette based on divisions of 255? Ie based on a cubic matrix (cubic for RGB).

    Here is an example of a (red/green) square matrix with 1/3 steps

    XXX OOO ---OOR---ORR----RRR OOO --Blk ----x---------x-------red OOG ----x----dkYell-----x-----orange OGG ----x-------x---------x----Lt orange GGG Green leaf? Lime yellow

    More kinds:

    1. Perhaps you can use the colours and names at https://en.wikipedia.org/wiki/Hue#24_hues_of_HSL/HSV (note uses 0/15.6/31/75/100% to define hue, instead of fractions of 255 that i thought were needed, list uses circular degrees at 15° intervals, satisfactory for me, unless you want to let the user build their own with a different interval). Tint/tones/shades (whiteness/greys/blackness) appear to be regarded as linear on the other pages.
    2. [The palette implied here could be useful as another option https://en.wikipedia.org/wiki/Natural_Color_System, but is based on perception, not sure about mixing to get the wider variety of colours.] It says proprietary so no.
    mid priority improvement difficulty: unknown 0.2.0 
    opened by Noitarud 1
  • [F] Register to open file from file manager

    [F] Register to open file from file manager

    I have a GIF file but other programs open it with blurred pixels. Can you register to let it be opened in yours from a file manager? (Ie ghost commander or android's), to have your program appear in the 'Open with' list.

    ✨ enhancement low priority difficulty: hard 0.2.0 
    opened by Noitarud 0
Releases(v0.1.8)
  • v0.1.8(Sep 8, 2022)

    0 1 8

    Today I am excited to release 0.1.8, which is going to be the last release of 0.1.x (aside from patches).

    0.2.0 will be the next release which will involve a complete overhaul of the app -- adding much requested features such as layers, pinch-to-zoom, ability to change brush thickness, lockable line angles, diagonal symmetry, blur filter, blur brush, HSV and HSL color modes, magic wand tool, lasso tool, re-sizeable canvases, customization of how the app functions, and much more.

    Those who are interested in previewing new, exciting features should also expect many alpha and beta builds of 0.2.0 to come out. Again, there is no set date as to when 0.2.0 will release, but it will take time. To ensure a good user experience -- alpha and beta builds will now no longer be available on F-Droid.

    Due to this being a large update, I may have missed some things.

    Features Added

    • ✨ (https://github.com/therealbluepandabear/PixaPencil/issues/184, https://github.com/therealbluepandabear/PixaPencil/commit/9b8888a1252438eca415eb037223bf98178ba561) There is now a dialog dedicated to helping you export your pixel art, along with the added feature of exporting your pixel art as raw dimensions (as well as scaled). This was a heavily-needed feature which has now finally been added. Moreover, you can now also input custom compression quality values if you are exporting your image as a JPG.

    Improvements Added

    • Translation updates
    • (56f494d7f33cf735729ba09a4a6ee47fbb5771f2, #213) App can finally properly register touch events when their start/end is outside canvas bounds (all credits go to Sergie Kozelko from StackOverflow for finding a solution to my question which you can find here -- if you are reading this, Sergie, thank you very much for your brilliant solution to a complex problem!)
    • (9b8888a1252438eca415eb037223bf98178ba561) 'Save as' (with multiple submenus) has transitioned into a single menu titled 'Export'
    • (a09377c378e15c7f4d98d1a290fb93b3665bf949) Minor margin adjustment in the 'New Color Palette' screen
    • (edbbc9f40a732a3134d8964d3ff05f3a0581f032) The maximum value for spray radius/strength has been lowered from 20k to 10k
    • (9ee8899c8aa2f1da268281e28d95ce8d0864612b) Replaced 'Save under new name' with 'Cancel'
    • (12683c212178b919664b72f1f7658f25df9ffde2, #215) Spray tool now generates points within a circle, instead of within a square
    • (2659061bd5bea61f2a874408022163bc6d03ac89) The maximum undo/redo stack size is now 100 items instead of unlimited
    • (f4e8de1753b277cfeee2da4aea9128c26229bd03, #211) Updated in-app tutorial
    • (28ba75c41e9ec7cb3833e430b779242894848d76) Improved the UI for the 'Input Name' dialog
    • (3c426b1d65a8a8a8ec1c14a2a8c86464f4e56ba5) Changed 'We would love you to join our Matrix or Discord server' to 'Join the official Matrix or Discord server' -- this is more appropriate
    • (a9d6d3f328ec5a16229c47a207798b932be441a2) The transparent background for colors in the color list (as well as the ones in the 'Find and Replace' fragment) now have the same appearance as those in the primary/secondary color switcher

    Bugs Fixed

    • (59394ebcaa6017889e441abe5938790a062696ea, 182721be87c455b5de4d07aabd8fe6ab3b4fcfea) Fixed bug where the 'About' fragment could become cut off if the user set a large default text size in their settings
    • (#196, 3dc4f8ccf0d2034245d1d42192fe465faacbe295) Fixed bug in which input errors (such as an invalid or empty width/height) would leave permanent margin changes
    • (a7ab329343f7f2bd77520d65a87876368ec6b413) Fixed bug in which occasionally, the keyboard from a previous fragment/activity wouldn't hide/close quickly enough when creating a new project or importing an image -- causing incorrect canvas view dimensions to be set
    • (aa3988a307c10bd433f2e68c25a73dedffbfc9ad) Fixed bug where inputting a blank value for the 'Palette URL Identifier' EditText in the 'Import Lospec Palette' dialog would cause the app to crash
    • (d587e7206b5ce37ece4d945573d4ad14fe44df71) Fixed bug where octal symmetry was being enabled when the bitmap was not a square
    • (f96755f0d2931aa596b2e97da781c92d8be120d1) Fixed bug where the grid would become enabled when it shouldn't have
    • (59fc2425d30064880fcd477d9c3c4fd449b9db7b) Fixed bug where 'XXX cannot be empty' errors were showing when the value wasn't empty, but simply greater than the maximum Int value
    • (1d77cccd961d0c1d034a55c5eacbf2553944a9ca, #206) Fixed bug in which the input filter would sometimes cause the app to crash in the RGB section of the color picker
    • (de0f97f49c1e0d97b839920c3050ad8b6e5f107a) Fixed bug where the user could use pixel perfect mode with a symmetry option selected which would then cause bugs
    • (53904cdbfa937d0bbbbfeb978094422a563c69a3) Fixed bug where the transparent primary/secondary color would have a partial black background (instead of white) in dark mode
    • (#228, a9d6d3f328ec5a16229c47a207798b932be441a2) Fixed bug where the transparent color indicator not visible in color palette preview
    • (dd546176599005e64e680aca822cb54bbaf3fc87) Fixed bug in which when the user had an existing transparent color in their palette and added a new color it would scroll to the transparent color instead of the '+' icon
    • (#231, d04d687f8f065c59e5a9b0a0d714c413d449efa2) [PROBABLE as the bug was quite rare] Fixed bug in which tapping 'Extract From Canvas' in 'New Color Palette' screen would cause the app to crash (SOMETIMES) on certain (predominantly large) canvases
    • (229bc957ed18558bc91000c1b0f15763c2c8e541) Fixed bug where all filters would lighten when the user had the shading tool selected
    • (#232, a7409c41424e8fa7d1f00c4e9b2be99a4741c2ed) Fixed bug in which changing display size while project is open and then returning to the app would cause a strange canvas glitch
    • (0b82de9de7c6c50964a6458fe57417707f5dda7b) Fixed minor rotation state bug
    • (0a4718e8e604e081d3f1917b0e847e5a3dda7739) Fixed bug in which rotating the canvas 180 degrees over and over again would cause the canvas to slowly become skewed - this occurred because of this internal Skia/AOSP bug workaround. To fix the issue I had to get rid of the workaround and just accept the bug, which is if you rotate the canvas 180 degrees, the shadow won't show.

    Other Changes

    • (069070f88cb9351471c2960a3369534695340db4, d514d6b3f995ae64cc09c988afddf301ba58be65) License has now changed from MIT to GNU GPL v3, copyright headers/license notices have also now been added to all Kotlin files
    • (bedd7ed7a22fbcb6926154cd345e8fa100bacf48) Moved Lospec support out of beta
    • (27e0c52d70456492f77076134590f1b001761b6b) Haptic feedback may not occur in the app if it's disabled on your device due to SDK updates

    Full Changelog: https://github.com/therealbluepandabear/PixaPencil/compare/v0.1.7-patch1...v0.1.8

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.37 MB)
    app-release.apk(12.07 MB)
  • v0.1.8-rc2(Aug 24, 2022)

    0 1 8rc2

    ⚠️ Warning: Release candidates (although more stable than beta releases) are not production ready, subject to major changes, and haven't gone through a great deal of testing to ensure feature stability.

    Improvements Added

    • Translation updates

    Bugs Fixed

    • (0d13373fe52184d686a249f376faafa42369e67c) Fixed bug in which inputting an out of bounds spray radius/strength value would show 'Value must be between 1 and 10,000' instead of the expected 'Value must be between 2 and 10,000'
    • (de0f97f49c1e0d97b839920c3050ad8b6e5f107a) Fixed bug where the user could use pixel perfect mode with a symmetry option selected which would then cause bugs
    • (53904cdbfa937d0bbbbfeb978094422a563c69a3) Fixed bug where the transparent primary/secondary color would have a partial black background (instead of white) in dark mode
    • (#221, abbe5b420d032f0b9bb0386c2435e2ab23969b0f) Fixed bug in which the 'Compression Quality' text box and 'Resolution' radio buttons were not showing in landscape mode in the 'Export' dialog

    Other Changes

    • (27e0c52d70456492f77076134590f1b001761b6b) Haptic feedback may not occur in the app if it's disabled on your device due to SDK updates

    Full Changelog: https://github.com/therealbluepandabear/PixaPencil/compare/v0.1.8-rc1...v0.1.8-rc2

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.39 MB)
    app-release.apk(12.09 MB)
  • v0.1.8-rc1(Aug 20, 2022)

    0 1 8rc1

    ⚠️ Warning: Release candidates (although more stable than beta releases) are not production ready, subject to major changes, and haven't gone through a great deal of testing to ensure feature stability.

    Improvements Added

    • (56f494d7f33cf735729ba09a4a6ee47fbb5771f2, #213) App can finally properly register touch events when their start/end is outside canvas bounds (all credits go to Sergie Kozelko from StackOverflow for finding a solution to my question which you can find here -- if you are reading this, Sergie, thank you very much for your brilliant solution to a complex problem!)
    • (12683c212178b919664b72f1f7658f25df9ffde2, #215) Spray tool now generates points within a circle, instead of within a square
    • Translation updates
    • (2659061bd5bea61f2a874408022163bc6d03ac89) The maximum undo/redo stack size is now 100 items instead of unlimited
    • (f4e8de1753b277cfeee2da4aea9128c26229bd03, #211) Updated in-app tutorial
    • (28ba75c41e9ec7cb3833e430b779242894848d76) Improved the UI for the 'Input Name' dialog
    • (3c426b1d65a8a8a8ec1c14a2a8c86464f4e56ba5) Changed 'We would love you to join our Matrix or Discord server' to 'Join the official Matrix or Discord server' -- this is more appropriate

    Bugs Fixed

    • (aa3988a307c10bd433f2e68c25a73dedffbfc9ad) Fixed bug where inputting a blank value for the 'Palette URL Identifier' EditText in the 'Import Lospec Palette' dialog would cause the app to crash
    • (d587e7206b5ce37ece4d945573d4ad14fe44df71) Fixed bug where octal symmetry was being enabled when the bitmap was not a square
    • (f96755f0d2931aa596b2e97da781c92d8be120d1) Fixed bug where the grid would become enabled when it shouldn't have
    • (59fc2425d30064880fcd477d9c3c4fd449b9db7b) Fixed bug where 'XXX cannot be empty' errors were showing when the value wasn't empty, but simply greater than the maximum Int value
    • (1d77cccd961d0c1d034a55c5eacbf2553944a9ca, #206) Fixed bug in which the input filter would sometimes cause the app to crash in the RGB section of the color picker

    Deprecated Changes Since 0.1.8 Beta 2

    • (8984afa7dfb3e69f91d108c0ba531ebcd897c3f2) Due to serious bugs, you can no longer long tap on your primary/secondary color to get to the color picker

    Full Changelog: https://github.com/therealbluepandabear/PixaPencil/compare/v0.1.8-beta2...v0.1.8-rc1

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.52 MB)
    app-release.apk(12.20 MB)
  • v0.1.8-beta2(Aug 12, 2022)

    0 1 8beta2

    ⚠️ Warning: Beta releases are not production ready, subject to major changes, and haven't gone through a great deal of testing to ensure feature stability.

    Features Added

    ✨ (9d407ee6bdd53edef57b8d0502c08fdc19a1f01c, #200) You can now input a compression quality value when exporting your images to JPG

    More information
    To input a custom compression quality value, press the following menu item -- titled 'Export' -- in the project of your choice:

    image

    Then, choose the file type 'JPG', and input the compression quality value of your choice in the 'Compression Quality' text box:

    image

    Compression quality only applies to the JPG (technically the JPEG) file type, as all other file types typically have lossless compression or no compression at all.

    Finally, press 'Done', and then open the file by pressing the 'View' button.

    image

    If you put in a high compression quality value, the overall result will be much more pleasant to look at.

    Below I have given a visual comparison of how a very low compression quality (around 0-15) and 100 differ:

    image

    image

    The effect is even further amplified when exporting the project in its raw resolution:

    Note: the second image may not look sharp, that's because it's been scaled up in the Android gallery app due to its small size.

    image

    image

    One last thing: you may be wondering what exactly the point of this feature is, and if you are -- good question! My answer to that would be that in certain scenarios you may want a smaller file size when exporting to JPG, so you'd oftentimes put in a lower compression quality value. Lower compression quality values oftentimes have a less detrimental effect when your images are larger, as you would have probably seen in the first example.

    Improvements Added

    • (872cc1f676becf7d1a7f6d26d1fde983641f6d90) You can now long tap on your primary/secondary color to open the color picker; this used to be a feature, but was removed -- now it has been re-added
    • (edbbc9f40a732a3134d8964d3ff05f3a0581f032) The maximum value for spray radius/strength has been lowered from 20k to 10k
    • (9ee8899c8aa2f1da268281e28d95ce8d0864612b) Replaced 'Save under new name' with 'Cancel'
    • Translation updates

    Bugs Fixed

    • (a7ab329343f7f2bd77520d65a87876368ec6b413) Fixed bug in which occasionally, the keyboard from a previous fragment/activity wouldn't hide/close quickly enough when creating a new project or importing an image -- causing incorrect canvas view dimensions to be set

    Full Changelog: https://github.com/therealbluepandabear/PixaPencil/compare/v0.1.8-beta1...v0.1.8-beta2

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.52 MB)
    app-release.apk(12.20 MB)
  • v0.1.8-beta1(Aug 10, 2022)

    0 1 8beta1

    ⚠️ Warning: Beta releases are not production ready, subject to major changes, and haven't gone through a great deal of testing to ensure feature stability.

    Features Added

    ✨ (#184, 9b8888a1252438eca415eb037223bf98178ba561) Added the option of exporting your project under its raw dimensions (along with scaled dimensions, which used to be the only option)

    More information
    To save your project under its raw dimensions, press the following menu item -- titled 'Export' -- in the project of your choice:

    image

    Then, choose the file type of your choice, and under 'Resolution', tap 'Raw' (which is the default):

    image

    Finally, press 'Done', and then open the file by pressing the 'View' button:

    image

    Improvements Added

    • (9b8888a1252438eca415eb037223bf98178ba561) 'Save as' (with multiple submenus) has transitioned into a single menu titled 'Export'
    • (a09377c378e15c7f4d98d1a290fb93b3665bf949) Minor margin adjustment in the 'New Color Palette' screen
    • Translation updates

    Bugs Fixed

    • (#196, 3dc4f8ccf0d2034245d1d42192fe465faacbe295) Fixed bug in which input errors (such as an invalid or empty width/height) would leave permanent margin changes

    Other Changes

    • (bedd7ed7a22fbcb6926154cd345e8fa100bacf48) Moved Lospec palette support out of beta

    Full Changelog: https://github.com/therealbluepandabear/PixaPencil/compare/v0.1.7-patch1...v0.1.8-beta1

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.53 MB)
    app-release.apk(12.20 MB)
  • v0.1.7-patch1(Aug 7, 2022)

    0 1 7patch1

    Improvements Added

    • Major translation updates

    Bugs Fixed

    • (4f1a472cbf9e708a3b64273184867c0a71c12804) Fixed bug in which when the user would apply a filter with the dither tool selected, it would apply the filter within the dither bounds
    • (34a3cd6135a0c6e953d8c363c765251a1d478509) Prevent infinite zoom in -- max zoom in limit is now one million
    • (0e0e0e6b60fc8904ff94ab3b9adf09de92aedb2b) Fixed bug in which the preview in the FindAndReplace fragment wasn't saving rotation/flip state properly in the preview
    • (ab85e4482e52732f9f23768d5068c1c294395199) Fixed flip icon tint issue in which the color was staying as black in dark mode
    • (84f0dc8d86f7c4387392bcfe182ae83b82e03bf8) Fixed bug in which the redo stack wasn't being cleared when the user would tap on 'Clear Canvas'
    • (06838d6d91dcd5930935c12fd396e77acea165f0) Fixed bug where some controls weren't resizing properly in CanvasActivity
    • (03d9cfd615fee55bcdeaefd8a3b9cfaf58fed84f) Fixed major bug in which after the user would clear the canvas, and then change their orientation, the bitmap would return to its state before it was cleared

    Other Changes

    • (0194aa52184476104a77114483f44a8640ae788e) Shape preview code cleanup -- this will improve the overall stability of the app
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.51 MB)
    app-release.apk(12.18 MB)
  • v0.1.7(Jul 28, 2022)

    image

    About

    0.1.7 is a semi-major update which introduces some small new features and lots of improvements.

    Since this is a large update, I may miss some things -- it's extremely difficult to keep track of everything.

    Features Added

    For more info on how to work with each feature, click on the appropriate link.

    In beta-1 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.7-beta1):

    ✨ Lospec palette support - you can now import palettes from Lospec (https://lospec.com/palette-list) into the app

    In beta-3 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.7-beta3):

    ✨ Delete All - you can now delete all of your projects

    ✨ Open Image - you can now open/import images from your file system to the app

    In this release:

    ✨ Flip - you can now flip your canvas horizontally or vertically

    Improvements Added

    In beta-1 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.7-beta1):

    • More strings have been translated into various languages -- thanks to all the translators!
    • After 'Delete' is tapped in the bottom sheet, instead of getting a dialog verifying whether or not the user wants to delete their creation, the creation will get deleted and you will then see a snackbar with an 'Undo' button (https://github.com/therealbluepandabear/PixaPencil/commit/20462bec3509eaee7300d9f5d7da109bc79938e8)
    • Added a better ripple color for the floating action button in the home screen (https://github.com/therealbluepandabear/PixaPencil/commit/8f5f26a84cee6fec1ab53a4e7c5c735044d36d85)
    • 'Find and Replace', 'Filters', and 'Clear Canvas' actions are now faster (https://github.com/therealbluepandabear/PixaPencil/commit/f5dcdcd9593252aec77bb921a9b478b7472a001f, https://github.com/therealbluepandabear/PixaPencil/commit/285b8bc2be519954d44bd4f7bc8099e33ce87b11, https://github.com/therealbluepandabear/PixaPencil/commit/62a13aa378b480f5c98856b2c8f68ba29669a552, https://github.com/therealbluepandabear/PixaPencil/commit/ca48d41d5201d52769040c801838890332707b92) (https://github.com/therealbluepandabear/PixaPencil/issues/166)

    In beta-2 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.7-beta2):

    • App is now more adaptable with phones that have smaller screens, larger user interface sizes, and tablets (https://github.com/therealbluepandabear/PixaPencil/issues/74, https://github.com/therealbluepandabear/PixaPencil/issues/168)
    • Renamed 'Find and Replace' to 'Replace Color' (https://github.com/therealbluepandabear/PixaPencil/commit/d531d52412b703e6ed4653ef46d1beafc3d191a7)
    • 'Reset Position' and 'Save in Background' are now more stable Color picker icon improvements (it now appears as a rectangle with a gradient)

    In beta-3 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.7-beta3):

    • Minor interactive app tutorial improvements (https://github.com/therealbluepandabear/PixaPencil/commit/3076407fe7988c98508eb085f618e50c6985a9ca, https://github.com/therealbluepandabear/PixaPencil/commit/c869fd9079d1b438e1b37372c85ebf3b6b1bddc5, https://github.com/therealbluepandabear/PixaPencil/commit/3ed03d618fec855522a60fa8cd23d0f011135121)
    • Translation updates

    In this release:

    • Replaced submenu 'Rotate XX' items with simply the degree value (5897ae2e7b7605065e00a972874ed64f1402192e)
    • Removed rotation animations permanently (#180)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.49 MB)
    app-release.apk(12.17 MB)
  • v0.1.7-beta3(Jul 25, 2022)

    image

    Features Added

    ✨ Delete All (df54ad16cdec9f03ba7d03dd53967502b497e8a9)

    More information

    To delete all of your projects, press the following three dots in the home screen:

    image

    Then, tap 'Delete All':

    image

    You will get a warning dialog, press 'OK':

    image

    Your projects should then delete:

    image

    ✨ Open Image (#176)

    More information

    To open an image, press the following three dots in the home screen:

    image

    Then, tap 'Open Image':

    image

    Then, pick an image of your liking, I downloaded a pixel art image for demonstration purposes:

    image

    After you tap on the image of your liking, you'll see a dialog asking you to name your project:

    image

    When you're done, press 'OK', and magic:

    image

    Improvements Added

    • Minor interactive app tutorial improvements (3076407fe7988c98508eb085f618e50c6985a9ca, c869fd9079d1b438e1b37372c85ebf3b6b1bddc5, 3ed03d618fec855522a60fa8cd23d0f011135121)
    • Translation updates
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.65 MB)
    app-release.apk(12.17 MB)
  • v0.1.7-beta2(Jul 21, 2022)

    0 1 7-beta2

    Improvements Added

    • App is now more adaptable with phones that have smaller screens, larger user interface sizes, and tablets (#74, #168)
    • Renamed 'Find and Replace' to 'Replace Color' (d531d52412b703e6ed4653ef46d1beafc3d191a7)
    • 'Reset Position' and 'Save in Background' are now more stable
    • Color picker icon improvements (it now appears as a rectangle with a gradient)

    Other Changes

    • Removed 'Rename' functionality due to high amount of bugs (bbbe00f9070bed3e7d486d3e563bca78e5a6023c)
    • Changed F-Droid description and cover images (36c6d46601a13f7d1bcf347716e7b99f04be7696)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.49 MB)
    app-release.apk(12.17 MB)
  • v0.1.7-beta1(Jul 12, 2022)

    0 1 7-beta1

    Before Updating, Read Carefully...

    Since this is a beta version, expect bugs. For most users, it's worth waiting until 0.1.7.

    The item_rotation column has been removed from the database, permanently.

    Rotation is still supported in the app, but the removal of this column has reduced unneeded complexity. I have provided a path for Room to ensure smooth database migration, although the only caveat is that after updating, all rotations done to your projects will reset. It's unfortunate that this occurs, although it shouldn't be a major issue, you can simply rotate the project again, press 'Save', and it will be back to what it was before. You may also experience further database bugs -- if I can find any more, I will fix them in 0.1.7.


    I am looking for new collaborators

    Apologies if this message bugs anyone, you can skip this if you're not interested.

    PixaPencil is now open for serious contributors/collaborators who are interested in improving the app -- if you are interested in helping speed up the app's development process (and expand the app's reach) send me an email at [email protected].

    If you don't want to develop per se, but simply help test versions before they get released or help in documentation writing or cover art, that would also be great, and you can send me an email as well.

    Features Added

    ✨ [BETA] Import external Lospec palettes as an in-app palette

    Users now have the ability to import external Lospec palettes inside the app.

    This feature is currently in beta, so it's not 100% stable.

    More information

    You can get to this by pressing the three dots at the top right of the screen, and then tapping 'Import Lospec Palette':

    Step1

    image

    Then, type in the palette URL identifier of your choice:

    image

    image

    After pressing 'OK', the end result should be similar to the following:

    image

    Improvements Added

    • More strings have been translated into various languages -- thanks to all the translators!
    • After 'Delete' is tapped in the bottom sheet, instead of getting a dialog verifying whether or not the user wants to delete their creation, the creation will get deleted and you will then see a snackbar with an 'Undo' button (20462bec3509eaee7300d9f5d7da109bc79938e8)
    • Added a better ripple color for the floating action button in the home screen (8f5f26a84cee6fec1ab53a4e7c5c735044d36d85)
    • 'Find and Replace', 'Filters', and 'Clear Canvas' actions are now faster (f5dcdcd9593252aec77bb921a9b478b7472a001f, 285b8bc2be519954d44bd4f7bc8099e33ce87b11, 62a13aa378b480f5c98856b2c8f68ba29669a552, ca48d41d5201d52769040c801838890332707b92) (#166)

    Other Changes

    • Backend improvements and general app stabilization
    • Changelogs should now be visible on F-Droid (#156)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.50 MB)
    app-release.apk(12.18 MB)
  • v0.1.6(Jun 23, 2022)

    Features Added

    • [BETA] You can now duplicate items by long tapping on a project and selecting the 'Duplicate' option (d71fce7a783d05d3f3f70a233936d421bd1c313c)
    • You can also rename your projects now by long tapping on a project and selecting the 'Rename' option (f14684ea35cb0da9c53e2e59826c123138993f05)

    Improvements Added

    • App has been translated into more languages (a377edf09582d30d7b593c5497f392b6490a649a, b4440489989c987b19bcbeb44b6765b342eedf36, c1d20604667ba33f59ef820d79036d76383b031e, b13d9256f9aa265e26c0a953120b4a07dd930425) - to everyone who has helped in the translation of this app: thank you!
    • Color-wheel indicator icons are now larger (3487f44a57e02d761545b48b7dad28e25c741d22)
    • Long tapping on a creation now gives the user a bottom sheet with options (#149, #68)
    • Fixed menu item title bug where in MainActivity the 'About' option item had a 'Community' title (39f38c2eb41f9c7588234a117e2de4aed5959831)

    Other Changes

    • Backend improvements, which hopefully can improve the app's stability
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.38 MB)
    app-release.apk(12.07 MB)
  • v0.1.5(Jun 20, 2022)

    Improvements Added

    • Added tool info for the move tool (#146)
    • Added color picker indicator icons for the primary and secondary colors, this means that to get the color picker you'll have to tap on the icon instead of long pressing on the primary/secondary color. I am still unsure whether or not I should give the user the ability to also get to the color picker by long-pressing, I will have to think about it for some more time (#112)
    • Pixel art preview images are now smaller in landscape mode for a better viewing experience (69dbb3b5958632075e90149ae1e7e78da2082989)

    Bugs Fixed

    • Fixed bug where the user would be able to bypass 'Unsaved Changes' if they changed their orientation (#145)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(13.37 MB)
    app-release.apk(12.05 MB)
  • v0.1.4(Jun 18, 2022)

  • v0.1.3(Jun 18, 2022)

  • v0.1.2(Jun 17, 2022)

    Improvements Added

    • PixaPencil is now on Weblate and has been translated partially to French, Italian, and Norweigan

    Bugs Fixed

    • Fixed semi-major bug where if you were to move around the canvas and then draw a (filled?) circle with a zero-to-one-radius, the app would crash (#136)
    • Fixed bug where the 'Save in Background' would create a new project on first creation every time after the first/second background save (#137)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(12.70 MB)
    app-release.apk(11.50 MB)
  • v0.1.1(Jun 15, 2022)

  • v0.1.0(Jun 14, 2022)

    Features Added

    In 0.1.0-beta1 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.0-beta1):

    • ⭐ Added custom dither brushes (#111)
    • ⭐ Added filled/outlined ellipse tool (#106)
    • ⭐ Added a move tool, as well as a 'Reset Position' option if you lose the canvas (#116)

    Improvements Added

    In 0.1.0-beta1 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.0-beta1):

    • At least a 1,000% speed increase for 'Find and Replace'. I was foolish as in I was not acting on the raw bitmap, but rather on the scaled up version of it. Now, the app acts on the raw bitmap, and scales it up for the preview. (https://github.com/therealbluepandabear/PixaPencil/issues/115)
    • More strings have been translated (https://github.com/therealbluepandabear/PixaPencil/commit/69db4379b2e73acea1ea0f722647714c95274275)

    Bugs Fixed

    In this release:

    • Fixed bug where tapping on a pixel with the picker tool disabled the 'undo' button (#126)
    • Fixed bug where tapping 'Save in Background'/viewing saved image and going back disabled the grid (#125)
    • Fixed bug where larger ellipses were being cut on large canvases (#123)
    • Fixed bug where the ellipse tool could cause the app to crash (#127)
    • Fixed bug where pressing 'Save in Background' on a newly created project would cause the app to crash (#121)

    In 0.1.0-beta2 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.0-beta2):

    • Fixed bug where everything would break when the user would zoom in/out (https://github.com/therealbluepandabear/PixaPencil/issues/119)
    • Fixed bug where tapping twice or more on move tool icon makes it not function until you tap on another icon and then tap back (https://github.com/therealbluepandabear/PixaPencil/issues/122)

    In 0.1.0-beta1 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.0-beta1):

    • Fixed bug where the 'Saved' toast wasn't showing properly/glitching when the user would press 'Save in Background' on a newly-created project (b8f9ee2c82002e65f0148679312f81b5034303bc)
    • Fixed bug where the 'saved to clipboard' (or whatever) snackbar was showing only if the Build.VERSION.SDK_INT was lower than Build.VERSION_CODES.Q, whereas it should've been showing if Build.VERSION.SDK_INT was lower than Build.VERSION_CODES.S. (4209f88e74d83c1dfd897149c177bf5e036607f8)

    Other changes

    In this release:

    • Color palette names now cannot be empty (f73d477e05befd5c2dbb6f6033ba55b2a546412b)
    • Fastlane description(s) updated (a0e9955f8f0191c78d0a7b60e96cdbcd4900f4f5)

    In 0.1.0-beta1 (https://github.com/therealbluepandabear/PixaPencil/releases/tag/v0.1.0-beta1):

    • This is more a back-end improvement, but more properties have been moved to the view model (https://github.com/therealbluepandabear/PixaPencil/commit/728b2be809d05e6a2b7654c5b2769d28f0aace09, https://github.com/therealbluepandabear/PixaPencil/commit/5f6b11f5d43a7c7e71e17981f5fad12ff92dc8c4, https://github.com/therealbluepandabear/PixaPencil/commit/f2e44b1472dbe12dbd9323d0aa38a40e950ed675, https://github.com/therealbluepandabear/PixaPencil/commit/8602d521d10e9276f5115df3109658aacb1c871d)
    • The app is finally on F-Droid (https://f-droid.org/en/packages/com.therealbluepandabear.pixapencil/). Because of this, I have decided to suspend the availability on the IzzyOnDroid repo. See (https://github.com/therealbluepandabear/PixaPencil/issues/79).

    Message (you can skip this)

    For the next release I am planning to add support for setting the brush thickness, brush shape, layers support, as well as pinch-to-zoom functionality. If you are facing any bugs/issues or have any feedback please open an issue request.

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(12.69 MB)
    app-release.apk(11.49 MB)
  • v0.1.0-beta2(Jun 12, 2022)

  • v0.1.0-beta1(Jun 11, 2022)

    New Features

    • ⭐ Added custom dither brushes (#111)
    • ⭐ Added filled/outlined ellipse tool (#106)
    • ⭐ Added a move tool, as well as a 'Reset Position' option if you lose the canvas (#116)

    Improvements Added

    • At least a 1,000% speed increase for 'Find and Replace'. I was foolish as in I was not acting on the raw bitmap, but rather on the scaled up version of it. Now, the app acts on the raw bitmap, and scales it up for the preview. (#115)
    • More strings have been translated (69db4379b2e73acea1ea0f722647714c95274275)

    Bugs Fixed

    • Fixed bug where the 'Saved' toast wasn't showing properly/glitching when the user would press 'Save in Background' on a newly-created project (b8f9ee2c82002e65f0148679312f81b5034303bc)
    • Fixed bug where the 'saved to clipboard' (or whatever) snackbar was showing only if the Build.VERSION.SDK_INT was lower than Build.VERSION_CODES.Q, whereas it should've been showing if Build.VERSION.SDK_INT was lower than Build.VERSION_CODES.S. (4209f88e74d83c1dfd897149c177bf5e036607f8)

    Other Changes

    • This is more a back-end improvement, but more properties have been moved to the view model (728b2be809d05e6a2b7654c5b2769d28f0aace09, 5f6b11f5d43a7c7e71e17981f5fad12ff92dc8c4, f2e44b1472dbe12dbd9323d0aa38a40e950ed675, 8602d521d10e9276f5115df3109658aacb1c871d)
    • The app is finally on F-Droid (https://f-droid.org/en/packages/com.therealbluepandabear.pixapencil/). Because of this, I have decided to suspend the availability on the IzzyOnDroid repo. See (#79).

    Message (you can skip this)

    This is a beta version of 0.1.0 so expect bugs. Note: I have observed some, and I will work on them.

    I am very happy that the app is on F-Droid.

    Play Store Release

    PixaPencil will be on the Play Store soon. I am not ecstatic about putting the app on the Play Store as it's proprietary trash made by an evil company, but it's necessary to yield a larger audience in the future. If you're not a 'normie' I would recommend you install it via F-Droid or GitHub, as it's much more secure than the Play Store.

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(12.68 MB)
    app-release.apk(11.48 MB)
  • v0.0.1(Jun 4, 2022)

    New Features

    • Added BMP conversion support (#105)

    Improvements Added

    • Translated some more strings in the app (e17c4530ce77426dfd8029a3a57c46d00a6c7ba7, 519e345ff0592883c6c995b67ddd9761d02e4f78, 3c7220f1839446594e99d589a2e09708e3abef5e, bf7080c9ef3eb3e421e36017a6dfa75fe6f0bb51)
    • Added a Toast notification whenever the user saves their project in the background (d7cc6ef72750c24c2119c836cfb56ee8b0f464b6, fb836dd342c8487c0c99f37678c2d184c118f7ed)

    Bugs Fixed

    • Fixed bug where the primary/secondary color would reset after the user would open their exported image (#109)

    Other Changes

    • App should be on F-Droid soon (#79)

    Message (you can skip this)

    I am very happy that 0.0.1 has been released.

    I have gotten to the point where there are the least amount of bugs there has ever been throughout the lifecycle of this project, but this doesn't mean that they don't exist. If you find any bugs please open an issue request.

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(12.67 MB)
    app-release.apk(11.47 MB)
  • v0.0.1-rc1.1(Jun 2, 2022)

  • v0.0.1-rc1(Jun 2, 2022)

    New Features

    • Added interactive, in-app tutorial (#103)

    Bugs Fixed

    • Fixed color palettes not being stable (#97) - you may experience some bugs with the color palette though, but it should be stable on the most part

    Other Changes

    • Dropped Arabic/French support due to the high cost of maintenance (9d3d3ee8c1a11b58d70b3550f56cf539250d05b4)
    • Minimum SDK has been raised to 26 due to bugs experienced in older versions (956cae6af669fd93f19f24c8fcb0d7b32d3ba8b2)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(12.71 MB)
    app-release.apk(11.36 MB)
  • v0.0.1-beta4(May 30, 2022)

    New Features

    • Added TIF/TIFF conversion support (#95)
    • Added ability to copy hexadecimal code to the clipboard (#99)

    Bugs Fixed

    • Pixel perfect bugs have been fixed -- it now functions properly (only if you have no symmetry) (#73)
    • Fixed bug where 'Find and Replace' was glitching heavily with the shading tool (#98)
    • Fixed some orientation bug, still contains some glitches but doesn't crash (#102)

    Other changes

    • Added notice that the app is not compatible with smaller screens, set android:smallScreens to false in the manifest file, as well as an in-app warning.

    Message (you can skip this)

    Overall the app is progressing well. You can expect perhaps 1-2 more beta releases.

    There is only one more major bug to fix which is #97.

    I would just like to thank everyone who has supported this app, appreciate it!

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(9.74 MB)
    app-release.apk(8.22 MB)
  • v0.0.1-beta3(May 27, 2022)

    New Features

    • Added WEBP conversion support (#92)

    New Improvements

    • 'Save as PNG' and 'Save as JPG' has been converted to 'Save as' --> (user can choose) 'PNG' or 'JPG', and now of course 'WEBP' (99d09993e6e428afe56c6344fba5e64ad0872417)

    Bugs Fixed

    • Fixed bug where the pixel art preview would become smaller when the user would save their creations in landscape mode (#67)
    • Fixed orientation change bug (168f7b5e84f503c30b720e3a555035644ce62684)
    • Fixed bug where canvas rotation state wouldn't transfer to the two previews in the 'Find and Replace' fragment (#90)
    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(7.16 MB)
    app-release.apk(5.80 MB)
  • v0.0.1-beta2(May 26, 2022)

    Some Bad News

    Unfortunately, due to my bad handling with the keystore file, this version is not compatible with 0.0.1-beta1. To install this version of the app, you will have to uninstall the prior version. This will not happen again, apologies.

    New Features

    • Added dark mode (#87)
    • Added a logo/icon to the app, courtesy of myself and a person who has wished to remain anonymous (#11)
    • The user can now save their projects in the background (79d86f7b11813df790d866301a054c7c5e45e6f9)

    New Improvements

    • The 'Unsaved changes' dialog has been revamped (aa41ae1892c12254924e77088ad1cf5cf786fe5e)
    • Improved FAB scroll behavior (237a8866b4259939f3d096cfff92de1847d41ebd)
    • All snackbars throughout the app now have 'swipe to dismiss' behavior (b5b6436e2012e7a037b35dd7641644a3ebe7c637 and fa5f47cee591f24877ab57dd8c24e96be1970148)

    Bugs Fixed

    • Fixed bug where the 'Find and Replace' fragment would crash when user would select a second color in the 'Find' or 'Replace' section (#78)
    • Fixed bug where the 'Find and Replace' fragment would crash when the user would change their orientation (#85)
    • Fixed bug where the previous activity wouldn't get deleted when the user would exit from CanvasActivity to MainActivity (#72 and #76)
    • Fixed bug where the app would crash if the user would enable dark mode in their settings (#84)
    • Fixed bug where the 'Color Palettes' tab would scroll to the front if the user deleted a color palette (8aee4c3c1f7ef1d07d24528e80c563d2a11c9e19)
    • Fixed bug where the color picker would scroll to the front when the user would long press to delete a color; there were some other bugs encountered in future commits related to this which have also been fixed (8e1f85b663bc65f67fb46ed328182f140638d818)

    Other Changes

    • @IzzySoft added a fastlane structure to the app (#83)

    I might have missed some stuff, so click here to see the full changelog (including changes done to the code).

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(7.16 MB)
    app-release.apk(5.80 MB)
  • v0.0.1-beta1(May 21, 2022)

    Hello,

    Look, I've been putting this off for a long time, and -- although the app does have many bugs -- I think the time is right to release a beta version for whoever is interested to try out.

    Remember, this is just a beta version: you will encounter bugs. As of now, I do not recommend creating a project with a large canvas size.

    From this point onwards, I will focus on releasing new versions of PixaPencil every 2-3 weeks.

    Thanks to @ManeraKai and @yousufshawon for their contributions as well.

    For those who are new, I encourage you to have a look at the README.md page. PixaPencil is feature-rich and is currently the best Android/Kotlin open-source pixel art editor.

    Open bugs:

    • #74
    • #73
    • #72
    • #67
    • #65
    • #78
    • #76 (possible duplicate of #72)

    If you find any more bugs please open an issue.

    Regards, thebluepandabear

    Source code(tar.gz)
    Source code(zip)
    app-debug.apk(6.95 MB)
    app-release.apk(5.63 MB)
Owner
Tom Joney
You can.
Tom Joney
An open-source implementation of the Pixel Active Edge gesture

Active Edge Service This is an open-source implementation of the Pixel Active Edge gesture, written from scratch for portability and customizability.

hlcynprjct! 0 Nov 20, 2021
LSPosed module to add Google Pixel features on Google Photos for any device.

Pixelify-Google-Photos LSPosed module to add Google Pixel features on Google Photos for any device. LSPosed module repo Development repo Steps to use:

null 502 Jan 9, 2023
[Android] Screenshot detection while user using your app

[Android] Screenshot detection while user using your app

Akexorcist 137 Dec 30, 2022
A simple implementation of rectangle detector on Android using OpenCV.

A simple implementation of rectangle detector on Android using OpenCV.

SmartBank, Inc. 4 Oct 7, 2022
Phimp.me Android Phimp.me is an Android image editor app

Phimp.me Android Phimp.me is an Android image editor app that aims to replace proprietary photographing and image apps on smart phones. It offers feat

FOSSASIA 2.6k Jan 6, 2023
Opencv Android SDK application for Deep Neural Networks to run on Android.

This application allows you to deploy deep nets in Android environment using OpenCV Android SDK. With OpenCV, images are taken from the camera on your phone, and then these images are passed through the neural network and visualized on the front side. In this application, we will search for faces in the images taken and draw the found faces on the screen.

Ahmet Furkan DEMIR 10 Nov 1, 2022
Android filters based on OpenGL (idea from GPUImage for iOS)

GPUImage for Android Idea from: iOS GPUImage framework Goal is to have something as similar to GPUImage as possible. Vertex and fragment shaders are e

CATS Open Source Softwares 8.6k Dec 28, 2022
Android library project for cropping images

I guess people are just cropping out all the sadness An Android library project that provides a simple image cropping Activity, based on code from AOS

Jamie McDonald 4.5k Jan 7, 2023
Custom view for circular images in Android while maintaining the best draw performance

CircularImageView Custom view for circular images in Android while maintaining the best draw performance Usage To make a circular ImageView, add this

Pkmmte Xeleon 1.2k Dec 28, 2022
some android image filters

android-image-filter some android image filters in some filter, I use NDK to implement to make it more efficient Setup Install Android NDK and properl

RagnarokStack 643 Dec 27, 2022
An android image compression library.

Compressor Compressor is a lightweight and powerful android image compression library. Compressor will allow you to compress large photos into smaller

Zetra 6.7k Dec 31, 2022
Custom shaped android imageview components

Shape Image View Provides a set of custom shaped android imageview components, and a framework to define more shapes. Implements both shader and bitma

Siyamed SINIR 2.6k Jan 3, 2023
Android widget for cropping and rotating an image.

Cropper The Cropper is an image cropping tool. It provides a way to set an image in XML and programmatically, and displays a resizable crop window on

Edmodo 2.9k Nov 14, 2022
A simple image cropping library for Android.

SimpleCropView The SimpleCropView is an image cropping library for Android. It simplifies your code for cropping image and provides an easily customiz

Issei Aoki 2.5k Dec 28, 2022
Customizable Android full screen image viewer for Fresco library supporting "pinch to zoom" and "swipe to dismiss" gestures. Made by Stfalcon

This project is no longer supported. If you're able to switch from Fresco to any other library that works with the Android's ImageView, please migrate

Stfalcon LLC 1.8k Dec 19, 2022
Dali is an image blur library for Android. It contains several modules for static blurring, live blurring and animations.

Dali Dali is an image blur library for Android. It is easy to use, fast and extensible. Dali contains several modules for either static blurring, live

Patrick Favre-Bulle 1k Dec 1, 2022
An image resizing library for Android

Resizer Inspired by zetbaitsu's Compressor, Resizer is a lightweight and easy-to-use Android library for image scaling. It allows you to resize an ima

Kakit Ho 426 Dec 22, 2022
Photo picker library for android. Let's you pick photos directly from files, or navigate to camera or gallery.

ChiliPhotoPicker Made with ❤️ by Chili Labs. Library made without DataBinding, RxJava and image loading libraries, to give you opportunity to use it w

Chili Labs 394 Nov 29, 2022
Simple android image popup Library

Android Image Popup Show image as a popup on a click event or any event. Simply set the image as drawable and thats it!!!. And also you can set width,

Chathura Lakmal 64 Nov 15, 2022