The problem happens to be that every UI implementation on the OS side has a different color color sets for focused and selected. HTC Sense is green, Android SDK is orange, and both Moto Blur and SonyEricsson Rachel are different colors.
On top of that not only are the image button colors changed but the hight light colors as well. Seems to me that if you could detect the build OS string to detect different UI implementations than set a theme:
setTheme(android.R.style.Theme_Dark); // ... setContentView(R.layout.main);
Bu t than you still have to change all your button and tabs etc. You still could use selectors but you would have an image set for each UI OS implementation and use an if then wrap code to select based on the build string.
Since most android training course do not cover these types of issues and solutions maybe you should bookmark those Android Knol collections links at the right side of this blog.