selector<对应的drawable是StateListDrawable> 的运作原理 这一篇已经讲的很清楚了:
http://blog.csdn.net/guolin_blog/article/details/17045157
最后一步显示是通过DrawableContainer(StateListDrawable的基类)<DrawableContainer extends Drawable implements Drawable.Callback>
的selectDrawable(int idx)
然后mCurrDrawable.setVisible(......) 来实现的图像变化。
setVisible(......)在有变化的情况下调用invalidateSelf()->注册的callback->invalidateDrawable(this).........一路callback,
最后到View<View implements Drawable.Callback>->invalidateDrawable()
public void invalidateDrawable(Drawable drawable) {
if (verifyD