To do this i used drawables for tab widgets instead of fixed images. my code is
tab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_drawable));
in the tab_drawable is a simple selector defining the behavior of the drawable for different state. you can try that it is very useful.