I've been using .png for the pictures, it seems to keep a pretty good quality, low file size, and will allow transparency (for the buttons)

bmp would be a good quality file, but it would be a large file, and each screen your computer has to load these files, which takes up a lot of memory.

my mAv1c skin, for example, is all .png and it is under 2mb for the entire skin, whereas my old avicted skin that was .bmp was 62mb and it had less functionality (one of my first skins.)