只需要重写View的drawableStateChanged()即可
示例:
@Override
protected void drawableStateChanged() {
final int[] state = getDrawableState();
boolean changed = false;
if (mDrawable != null && mDrawable.isStateful()) {
changed |= mDrawable.setState(state);
}
if (changed) {
invalidate();
}
super.drawableStateChanged();
}