[Galaxy S I9000 Themes and Apps] Jumba:
Hi all, I've had a lot of requests for different colours. Let me briefly explain the process so you can understand the complexities involved. It may also inspire you to try it out yourself. ;)

-------------------

Tools Needed:

Android SDK package - add the (sdkpath)/tools folder to your windows environment variable.

Version 1.3.1 (not 1.3.2) of APKTool.

Adobe Photoshop and Fireworks (or other advanced image editing software).

PSPad Editor (or other valid xml editor).

Latest version of the NeonGT theme.

PNGOptimizer.

7-zip.

Extract framework-res.apk from the theme zip file. Decompile this file using APKTool into a folder on your hard drive.

In this folder, edit the xmls in the /res/drawable-hdpi-v4/color , layout , values and drawable folders to change the theme colours to what you like. Note that if you want to recolour the other aspects of the UI such as Task Manager, Contacts, Dialer, Settings, DownloadsProvider, etc. then you will need to repeat this process with all the other .apks in the /system/app folder of the theme zip file. I cannot give detailed xml editing instructions here, but there are a lot of guides available via google.

Now onto the graphics. Take a look inside the /res/drawable-(x)/ folders. Leave all the files that end in .9.png for now, we will get to those in a bit.

You will need to recolour all the .png files, either by using automations in photoshop or batch commands in Gimp etc. so you can recolour a bunch of images at a time. However, mass recolouring is NOT advised due to subtle variations in the original icons that sometimes come out looking horrible if you do a Hue adjustment to all the files at once.

Beware though, because earlier versions of Photoshop (at least CS3) don't handle transparency in 8-bit .pngs, so you'll need to open these in Fireworks instead, or use a 3rd-party plugin like PNGOut for photoshop.

So let's say you've made it this far and have hand/batch-edited a couple of thousand images and successfully edited the colours in all the relevant .xml files. Next is to tackle the .9.png images.

These are different in that they are encoded with stretchable area information so they are able to be scaled in size without distorting the edges or gradients. I kinda like them. :O

If you open any of the decompiled .9.png images in your image editor you will notice they have a transparent 1px block around the image with some black lines. The top and left lines mark the area of the image that can be stretched and the right and bottom lines mark the space that can be occupied by the content of the image before any stretching takes place. I hope this makes sense - it will in time. ;)

You can edit these images using the Fireworks/Photoshop method you used earlier with the regular pngs, but be 100% sure not to change the colour/transparency/lightness/brightness/etc. of the outer 1px border. This is essential or the .9.pngs will not compile. So if all you want to do is recolour the images you'll need to edit them one by one (or be handy with photoshop automations) to make sure the border remains unchanged.

At this point you may also want to run the images through PNGOptimizer to make sure they aren't too big.

Compile using APKTool. Rename the resulting framework-res.apk to .apk.zip and open with 7-zip. Delete the assets folder in the 7-zip window. Open the original theme framework-res.apk file in 7-zip and drag the META-INF and assets folders over to the other 7-zip window, adding them to the new framework-res.apk.zip. Close and rename the new file back to .apk

Oh, I almost forgot, you'll need to repeat this process with Settings.apk and twframework-res.apk.

Almost done. Make a copy of the theme zip file and rename it to (mygroovynwethemeorwhatever).zip - then open it and navigate to the /system/framework folder - drag your new framework-res.apk and twframework-res.apk into this window, click OK - navigate to /system/app and drag over all your other new .apks, click OK and close 7-zip.

Pray. Flash using ClockworkMod.

-------------------