Tool [Tool] Make your own notification icon with an ASCII and/or a FontAwesome/Material Icons character

Hi all,

I wanted an easy way to create simple B4A notification icons consisting of a letter and a symbol; the symbol could then show things like 'there is a message' / 'there are no messages' / 'there is no network connection'. So I came up with MakeNotificationPng. Attached you'll find the B4J project as well as a small B4A app (TestNotificationPng) with which you can test the generated icons.

Usage - top left pane:
- Select a character in at least one of the ComboBoxes in the top left corner
- Use the TextField to filter the right hand side Combobox descriptions
- Use the RadioButtons to choose FontAwesome or Material Icons for the right hand side Combobox
- The 'Restart' Button lets you restart afresh

In the top right pane:
- Select which character(s) to manipulate (the left one or the right, or both)
- Move the selected character(s) left/right/up/down with the arrow Buttons
- Move either character by dragging it (if checkbox 'Enable dragging' is checked; dragging the right hand side character may be erratic; I didn't find a bulletproof solution for this issue so if that happens, use the 'move' buttons instead)
- Flip the selected character(s) horizontally or vertically (may not work depending on the OS and JDK version)
- Rotate the selected character(s) 30 degrees at a time
- Use the ComboBox to change the left character's font
- Change the font size of the selected character(s)
- Use the CheckBoxes to set/unset Bold and Italic for the left character's font
- Use the yellow handles to crop the image (thank you Klaus :)
- Save the image as png (and make it read-only) in a B4A app's Objects\res\drawable folder, from where it can be used as a Notification icon

Files folder contents:
- listfa.txt: a copy of C:\Program Files (x86)\Anywhere Software\B4J\FontAwesomeList.txt
- listmi.txt: a copy of C:\Program Files (x86)\Anywhere Software\B4J\MaterialIcons.txt

Library dependencies:
- JavaObject, jCore, jFX, jGauges, jShell, jXUI: core libraries by Erel
- xResizeAndCrop: by Klaus -


MakeNotificationPng1.3 - screenshot.PNG


    25.5 KB · Views: 228
    19.8 KB · Views: 211
    22 KB · Views: 66
Last edited:


Well-Known Member
Licensed User
Longtime User
Thanks walt61, for this very good and helpful contribution to the community.




Well-Known Member
Licensed User
Longtime User
Just-in-Time :D


Active Member
Licensed User
Longtime User
I hadn't needed this one for a while and noticed that dragging was very erratic; possibly because in the meanwhile I had switched to OpenJDK 11. Version 1.3 attached to the first post, with these changes:
- dragging flipped characters produced very bizarre results (not sure if this is OpenJDK11-related)
- added checkbox 'Enable dragging'
- used smaller labels for the characters as an OpenJDK bug caused exceptions with the 600dip-sized ones
- replaced the 'move 1/10' buttons with arrows and a textfield for a user-defined distance
- added button 'Restart'
- clicking a character now selects it for moving/flipping
- after saving the png file, the user is now offered to open its folder/directory
- 'flip' radiobuttons changed to buttons as radiobuttons could be confusing
- made code more concise by e.g. adding tags to views and assigning them common event names
- additional small changes