Are you using a different screen resolution than 480x800? Because if you do, it will not work.
If for example you have 240x320, then when you touch in the middle, you get x = 120 and y = 160 but in the map picture, this position is not the correct menu item (the middle is x = 240, Y = 400). You'll need to change the code to make it work for other resolutions.
@hdtvirl. GetPixel() is not the fastest way to get a pixel color. I'm sure other ways in java can get te value faster (like with the getPixels() function to a byte array, However, I' m a little suprised it is so slow. On my Galaxy S I get the selection realtime.
My guess is maybe because the label is on the panel, every time it changes the label text it also refreshes the whole picture. (which can be very slow if your resolution is other then 480x800 because it needs to resize the whole pic all the time). Try experimenting with a different layout.