It depends on the device, but in most cases (e.g. all Nokia MIDP 1.0 phones) PNG transparency is supported through the standard MIDP API. You don’t need any proprietary APIs to get transparent sprites.
The methods in question are in class:
javax.microedition.lcdui.Image
they are:
static Image createImage(String)
static Image createImage(byte[], int, int)
The first takes the name of a file in the MIDlet’s JAR file (e.g. “/rocket.png”, don’t forget that “/”); the second uses data from a byte array.
See the JavaDocs for class Image, and read the section titled PNG Image Format. The second bullet point ends with “Color types that include alpha channel data are supported; however, the implementation may ignore all alpha channel information and treat all pixels as opaque.” (My italics).
So, manufacturers can ignore the transparency information and create opaque Images from transparent PNGs, but they can also choose to interpret the transparency information and create transparent Images from transparent PNGs.
I’m not just talking theory here - I have personally written many MIDP 1.0 MIDlets with transparent sprites and run them successfully on several different Nokia MIDP 1.0 phones.