Search in sources :

Example 71 with Insets

use of android.graphics.Insets in project android_frameworks_base by crdroidandroid.

the class Switch method onDraw.

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    final Rect padding = mTempRect;
    final Drawable trackDrawable = mTrackDrawable;
    if (trackDrawable != null) {
        trackDrawable.getPadding(padding);
    } else {
        padding.setEmpty();
    }
    final int switchTop = mSwitchTop;
    final int switchBottom = mSwitchBottom;
    final int switchInnerTop = switchTop + padding.top;
    final int switchInnerBottom = switchBottom - padding.bottom;
    final Drawable thumbDrawable = mThumbDrawable;
    if (trackDrawable != null) {
        if (mSplitTrack && thumbDrawable != null) {
            final Insets insets = thumbDrawable.getOpticalInsets();
            thumbDrawable.copyBounds(padding);
            padding.left += insets.left;
            padding.right -= insets.right;
            final int saveCount = canvas.save();
            canvas.clipRect(padding, Op.DIFFERENCE);
            trackDrawable.draw(canvas);
            canvas.restoreToCount(saveCount);
        } else {
            trackDrawable.draw(canvas);
        }
    }
    final int saveCount = canvas.save();
    if (thumbDrawable != null) {
        thumbDrawable.draw(canvas);
    }
    final Layout switchText = getTargetCheckedState() ? mOnLayout : mOffLayout;
    if (switchText != null) {
        final int[] drawableState = getDrawableState();
        if (mTextColors != null) {
            mTextPaint.setColor(mTextColors.getColorForState(drawableState, 0));
        }
        mTextPaint.drawableState = drawableState;
        final int cX;
        if (thumbDrawable != null) {
            final Rect bounds = thumbDrawable.getBounds();
            cX = bounds.left + bounds.right;
        } else {
            cX = getWidth();
        }
        final int left = cX / 2 - switchText.getWidth() / 2;
        final int top = (switchInnerTop + switchInnerBottom) / 2 - switchText.getHeight() / 2;
        canvas.translate(left, top);
        switchText.draw(canvas);
    }
    canvas.restoreToCount(saveCount);
}
Also used : Rect(android.graphics.Rect) Insets(android.graphics.Insets) StaticLayout(android.text.StaticLayout) Layout(android.text.Layout) Drawable(android.graphics.drawable.Drawable) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint)

Example 72 with Insets

use of android.graphics.Insets in project android_frameworks_base by crdroidandroid.

the class Switch method getThumbScrollRange.

private int getThumbScrollRange() {
    if (mTrackDrawable != null) {
        final Rect padding = mTempRect;
        mTrackDrawable.getPadding(padding);
        final Insets insets;
        if (mThumbDrawable != null) {
            insets = mThumbDrawable.getOpticalInsets();
        } else {
            insets = Insets.NONE;
        }
        return mSwitchWidth - mThumbWidth - padding.left - padding.right - insets.left - insets.right;
    } else {
        return 0;
    }
}
Also used : Rect(android.graphics.Rect) Insets(android.graphics.Insets)

Example 73 with Insets

use of android.graphics.Insets in project android_frameworks_base by crdroidandroid.

the class NinePatchDrawable method computeBitmapSize.

private void computeBitmapSize() {
    final NinePatch ninePatch = mNinePatchState.mNinePatch;
    if (ninePatch == null) {
        return;
    }
    final int sourceDensity = ninePatch.getDensity();
    final int targetDensity = mTargetDensity;
    final Insets sourceOpticalInsets = mNinePatchState.mOpticalInsets;
    if (sourceOpticalInsets != Insets.NONE) {
        final int left = Drawable.scaleFromDensity(sourceOpticalInsets.left, sourceDensity, targetDensity, true);
        final int top = Drawable.scaleFromDensity(sourceOpticalInsets.top, sourceDensity, targetDensity, true);
        final int right = Drawable.scaleFromDensity(sourceOpticalInsets.right, sourceDensity, targetDensity, true);
        final int bottom = Drawable.scaleFromDensity(sourceOpticalInsets.bottom, sourceDensity, targetDensity, true);
        mOpticalInsets = Insets.of(left, top, right, bottom);
    } else {
        mOpticalInsets = Insets.NONE;
    }
    final Rect sourcePadding = mNinePatchState.mPadding;
    if (sourcePadding != null) {
        if (mPadding == null) {
            mPadding = new Rect();
        }
        mPadding.left = Drawable.scaleFromDensity(sourcePadding.left, sourceDensity, targetDensity, false);
        mPadding.top = Drawable.scaleFromDensity(sourcePadding.top, sourceDensity, targetDensity, false);
        mPadding.right = Drawable.scaleFromDensity(sourcePadding.right, sourceDensity, targetDensity, false);
        mPadding.bottom = Drawable.scaleFromDensity(sourcePadding.bottom, sourceDensity, targetDensity, false);
    } else {
        mPadding = null;
    }
    mBitmapHeight = Drawable.scaleFromDensity(ninePatch.getHeight(), sourceDensity, targetDensity, true);
    mBitmapWidth = Drawable.scaleFromDensity(ninePatch.getWidth(), sourceDensity, targetDensity, true);
    final NinePatch.InsetStruct insets = ninePatch.getBitmap().getNinePatchInsets();
    if (insets != null) {
        Rect outlineRect = insets.outlineRect;
        mOutlineInsets = NinePatch.InsetStruct.scaleInsets(outlineRect.left, outlineRect.top, outlineRect.right, outlineRect.bottom, targetDensity / (float) sourceDensity);
        mOutlineRadius = Drawable.scaleFromDensity(insets.outlineRadius, sourceDensity, targetDensity);
    } else {
        mOutlineInsets = null;
    }
}
Also used : Rect(android.graphics.Rect) Insets(android.graphics.Insets) NinePatch(android.graphics.NinePatch) Paint(android.graphics.Paint)

Aggregations

Insets (android.graphics.Insets)73 Paint (android.graphics.Paint)53 Rect (android.graphics.Rect)35 TextPaint (android.text.TextPaint)26 Drawable (android.graphics.drawable.Drawable)15 Point (android.graphics.Point)10 NinePatch (android.graphics.NinePatch)5 Layout (android.text.Layout)5 StaticLayout (android.text.StaticLayout)5 LongSparseLongArray (android.util.LongSparseLongArray)4