Search in sources :

Example 61 with Insets

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

the class ViewGroup method computeOpticalInsets.

@Override
Insets computeOpticalInsets() {
    if (isLayoutModeOptical()) {
        int left = 0;
        int top = 0;
        int right = 0;
        int bottom = 0;
        for (int i = 0; i < mChildrenCount; i++) {
            View child = getChildAt(i);
            if (child.getVisibility() == VISIBLE) {
                Insets insets = child.getOpticalInsets();
                left = Math.max(left, insets.left);
                top = Math.max(top, insets.top);
                right = Math.max(right, insets.right);
                bottom = Math.max(bottom, insets.bottom);
            }
        }
        return Insets.of(left, top, right, bottom);
    } else {
        return Insets.NONE;
    }
}
Also used : Insets(android.graphics.Insets) Paint(android.graphics.Paint)

Example 62 with Insets

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

the class AbsSeekBar method drawTrack.

@Override
void drawTrack(Canvas canvas) {
    final Drawable thumbDrawable = mThumb;
    if (thumbDrawable != null && mSplitTrack) {
        final Insets insets = thumbDrawable.getOpticalInsets();
        final Rect tempRect = mTempRect;
        thumbDrawable.copyBounds(tempRect);
        tempRect.offset(mPaddingLeft - mThumbOffset, mPaddingTop);
        tempRect.left += insets.left;
        tempRect.right -= insets.right;
        final int saveCount = canvas.save();
        canvas.clipRect(tempRect, Op.DIFFERENCE);
        super.drawTrack(canvas);
        drawTickMarks(canvas);
        canvas.restoreToCount(saveCount);
    } else {
        super.drawTrack(canvas);
        drawTickMarks(canvas);
    }
}
Also used : Rect(android.graphics.Rect) Insets(android.graphics.Insets) Drawable(android.graphics.drawable.Drawable)

Example 63 with Insets

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

the class View method setOpticalFrame.

private boolean setOpticalFrame(int left, int top, int right, int bottom) {
    Insets parentInsets = mParent instanceof View ? ((View) mParent).getOpticalInsets() : Insets.NONE;
    Insets childInsets = getOpticalInsets();
    return setFrame(left + parentInsets.left - childInsets.left, top + parentInsets.top - childInsets.top, right + parentInsets.left + childInsets.right, bottom + parentInsets.top + childInsets.bottom);
}
Also used : Insets(android.graphics.Insets)

Example 64 with Insets

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

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)

Example 65 with Insets

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

the class VectorDrawable method computeVectorSize.

/*
     * Update local dimensions to adjust for a target density that may differ
     * from the source density against which the constant state was loaded.
     */
void computeVectorSize() {
    final Insets opticalInsets = mVectorState.mOpticalInsets;
    final int sourceDensity = mVectorState.mDensity;
    final int targetDensity = mTargetDensity;
    if (targetDensity != sourceDensity) {
        mDpiScaledWidth = Drawable.scaleFromDensity((int) mVectorState.mBaseWidth, sourceDensity, targetDensity, true);
        mDpiScaledHeight = Drawable.scaleFromDensity((int) mVectorState.mBaseHeight, sourceDensity, targetDensity, true);
        final int left = Drawable.scaleFromDensity(opticalInsets.left, sourceDensity, targetDensity, false);
        final int right = Drawable.scaleFromDensity(opticalInsets.right, sourceDensity, targetDensity, false);
        final int top = Drawable.scaleFromDensity(opticalInsets.top, sourceDensity, targetDensity, false);
        final int bottom = Drawable.scaleFromDensity(opticalInsets.bottom, sourceDensity, targetDensity, false);
        mDpiScaledInsets = Insets.of(left, top, right, bottom);
    } else {
        mDpiScaledWidth = (int) mVectorState.mBaseWidth;
        mDpiScaledHeight = (int) mVectorState.mBaseHeight;
        mDpiScaledInsets = opticalInsets;
    }
    mDpiScaledDirty = false;
}
Also used : Insets(android.graphics.Insets)

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