Esempio n. 1
0
        protected internal override void onDraw(Canvas canvas)
        {
            // Setup gravity.
            if ((mGravity & GRAVITY_START) > 0)
            {
                mRect.set(0, mRect.top, mRect.width(), mRect.bottom);
            }
            else if ((mGravity & GRAVITY_TOP) > 0)
            {
                mRect.set(mRect.left, 0, mRect.right, mRect.height());
            }
            else if ((mGravity & GRAVITY_END) > 0)
            {
                mRect.set(canvas.Width - mRect.width(), mRect.top, canvas.Width, mRect.bottom);
            }
            else if ((mGravity & GRAVITY_BOTTOM) > 0)
            {
                mRect.set(mRect.left, canvas.Height - mRect.height(), mRect.right, canvas.Height);
            }

            if ((mGravity & GRAVITY_CENTER) > 0)
            {
                mRect.set((canvas.Width / 2) - (mRect.width() / 2), (canvas.Height / 2) - (mRect.height() / 2), (canvas.Width / 2) - (mRect.width() / 2) + mRect.width(), (canvas.Height / 2) - (mRect.height() / 2) + mRect.height());
            }
            else if ((mGravity & GRAVITY_CENTER_HORIZONTAL) > 0)
            {
                mRect.set((canvas.Width / 2) - (mRect.width() / 2), mRect.top, (canvas.Width / 2) - (mRect.width() / 2) + mRect.width(), mRect.bottom);
            }
            else if ((mGravity & GRAVITY_CENTER_VERTICAL) > 0)
            {
                mRect.set(mRect.left, (canvas.Height / 2) - (mRect.height() / 2), mRect.right, (canvas.Height / 2) - (mRect.height() / 2) + mRect.height());
            }

            // Merge offset.
            mRect.offset(mOffset.x, mOffset.y);

            canvas.drawRect(mRect, mPaint);
        }