You have to write selector programmatically and set it to the background to ImageView.
Like:
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(white image id position));
states.addState(new int[] {},
getResources().getDrawable(grey image id position));
image.setBackgroundResource(states);