protected internal override void onDraw(android.graphics.Canvas canvas) { base.onDraw(canvas); if (mDrawable == null) { return; } // couldn't resolve the URI if (mDrawableWidth == 0 || mDrawableHeight == 0) { return; } // nothing to draw (empty bounds) if (mDrawMatrix == null && mPaddingTop == 0 && mPaddingLeft == 0) { mDrawable.draw(canvas); } else { int saveCount = canvas.getSaveCount(); canvas.save(); if (mCropToPadding) { int scrollX = mScrollX; int scrollY = mScrollY; canvas.clipRect(scrollX + mPaddingLeft, scrollY + mPaddingTop, scrollX + mRight - mLeft - mPaddingRight, scrollY + mBottom - mTop - mPaddingBottom); } canvas.translate(mPaddingLeft, mPaddingTop); if (mDrawMatrix != null) { canvas.concat(mDrawMatrix); } mDrawable.draw(canvas); canvas.restoreToCount(saveCount); } }