@Override
 public int getMinimumHeight() {
   if (mDrawableContainerState.isConstantSize()) {
     return mDrawableContainerState.getConstantMinimumHeight();
   }
   return mCurrDrawable != null ? mCurrDrawable.getMinimumHeight() : 0;
 }
 @Override
 public int getIntrinsicHeight() {
   if (mDrawableContainerState.isConstantSize()) {
     return mDrawableContainerState.getConstantHeight();
   }
   return mCurrDrawable != null ? mCurrDrawable.getIntrinsicHeight() : -1;
 }
 @Override
 public ConstantState getConstantState() {
   if (mDrawableContainerState.canConstantState()) {
     mDrawableContainerState.mChangingConfigurations = super.getChangingConfigurations();
     return mDrawableContainerState;
   }
   return null;
 }
 @Override
 public boolean getPadding(Rect padding) {
   final Rect r = mDrawableContainerState.getConstantPadding();
   if (r != null) {
     padding.set(r);
     return true;
   }
   if (mCurrDrawable != null) {
     return mCurrDrawable.getPadding(padding);
   } else {
     return super.getPadding(padding);
   }
 }
 @Override
 public boolean isStateful() {
   return mDrawableContainerState.isStateful();
 }
 @Override
 public int getOpacity() {
   return mDrawableContainerState.getOpacity();
 }