Example usage for android.support.v4.view GravityCompat getAbsoluteGravity

List of usage examples for android.support.v4.view GravityCompat getAbsoluteGravity

Introduction

In this page you can find the example usage for android.support.v4.view GravityCompat getAbsoluteGravity.

Prototype

public static int getAbsoluteGravity(int i, int i2) 

Source Link

Usage

From source file:com.calgen.udacity.lego.ui.Utils.java

/**
 * @param direction {@link android.view.Gravity#START} or {@link android.view.Gravity#END}
 * @param context {@link Context} to fetch current layoutDirection
 * @return appropriate {@link android.view.Gravity#LEFT} or {@link android.view.Gravity#RIGHT}
 *//*from w ww.j  av  a2 s  .  c om*/
public static int resolveDirection(int direction, Context context) {
    return GravityCompat.getAbsoluteGravity(direction,
            context.getResources().getConfiguration().getLayoutDirection());
}

From source file:com.jakewharton.behavior.drawer.BehaviorDelegate.java

BehaviorDelegate(CoordinatorLayout parent, View child, int gravity) {
    this.parent = parent;
    this.child = child;

    int absGravity = GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(parent));
    this.isLeft = absGravity == Gravity.LEFT;

    float density = parent.getResources().getDisplayMetrics().density;
    float minVel = MIN_FLING_VELOCITY * density;

    dragger = ViewDragHelper.create(parent, this);
    dragger.setEdgeTrackingEnabled(isLeft ? ViewDragHelper.EDGE_LEFT : ViewDragHelper.EDGE_RIGHT);
    dragger.setMinVelocity(minVel);/*from www.  j  a  va  2  s  .  c om*/

    scrimDrawer = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2
            ? new ContentScrimDrawer.JellyBeanMr2(parent)
            : new ContentScrimDrawer.Base(parent, child);
}

From source file:com.apprevelations.Cozzy.FoldingDrawerLayout.java

boolean isDrawerView2(View child) {
    final int gravity = ((LayoutParams) child.getLayoutParams()).gravity;
    final int absGravity = GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(child));
    return (absGravity & (Gravity.LEFT | Gravity.RIGHT)) != 0;
}

From source file:ooo.oxo.apps.earth.widget.WindowInsetsFrameLayout.java

@SuppressLint("RtlHardcoded")
private void computeInsetsWithGravity(View view, Rect insets) {
    LayoutParams lp = (LayoutParams) view.getLayoutParams();

    int gravity = GravityCompat.getAbsoluteGravity(lp.gravity, ViewCompat.getLayoutDirection(view));

    if (lp.width != LayoutParams.MATCH_PARENT) {
        if ((gravity & Gravity.LEFT) != Gravity.LEFT) {
            insets.left = 0;//from   w w  w  .j a v a  2s.  co  m
        }

        if ((gravity & Gravity.RIGHT) != Gravity.RIGHT) {
            insets.right = 0;
        }
    }

    if (lp.height != LayoutParams.MATCH_PARENT) {
        if ((gravity & Gravity.TOP) != Gravity.TOP) {
            insets.top = 0;
        }

        if ((gravity & Gravity.BOTTOM) != Gravity.BOTTOM) {
            insets.bottom = 0;
        }
    }
}

From source file:com.amitupadhyay.aboutexample.ui.widget.FabOverlapTextView.java

public void setFabOverlapGravity(int fabGravity) {
    // we only really support [top|bottom][left|right|start|end]
    // TODO validate input
    this.fabGravity = GravityCompat.getAbsoluteGravity(fabGravity, getLayoutDirection());
}

From source file:li.barter.widgets.FullWidthDrawerLayout.java

boolean isChildADrawerView(final View child) {
    final int gravity = ((LayoutParams) child.getLayoutParams()).gravity;
    final int absGravity = Gravity.getAbsoluteGravity(gravity,
            GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(child)));
    return (absGravity & (Gravity.LEFT | Gravity.RIGHT)) != 0;
}

From source file:li.barter.widgets.FullWidthDrawerLayout.java

int getDrawerViewGravity(final View drawerView) {
    final int gravity = ((LayoutParams) drawerView.getLayoutParams()).gravity;
    return Gravity.getAbsoluteGravity(gravity,
            GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(drawerView)));
}

From source file:com.kyo.fitssystemwindows.FitsSystemWindowsFrameLayout.java

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    final boolean applyInsets = lastInsets != null && ViewCompat.getFitsSystemWindows(this);
    final int layoutDirection = ViewCompat.getLayoutDirection(this);
    final int childCount = getChildCount();
    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);

        if (child.getVisibility() == GONE) {
            continue;
        }/*from  w ww .  j a va 2 s . co  m*/

        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
        if (lp.gravity == -1) {
            lp.gravity = DEFAULT_CHILD_GRAVITY;
        }

        if (applyInsets) {
            int cgrav = GravityCompat.getAbsoluteGravity(lp.gravity, layoutDirection);

            if (cgrav == -1) {
                cgrav = DEFAULT_CHILD_GRAVITY;
            } else {
                if ((cgrav & Gravity.VERTICAL_GRAVITY_MASK) == 0) {
                    cgrav = cgrav | Gravity.TOP;
                }
                if ((cgrav & Gravity.HORIZONTAL_GRAVITY_MASK) == 0) {
                    cgrav = cgrav | (layoutDirection == LAYOUT_DIRECTION_LTR ? Gravity.LEFT : Gravity.RIGHT);
                }
            }

            if (ViewCompat.getFitsSystemWindows(child)) {
                final int l = child.getPaddingLeft();
                final int t = child.getPaddingTop();
                final int r = child.getPaddingRight();
                final int b = child.getPaddingBottom();
                IMPL.dispatchChildInsets(child, lp, cgrav, lastInsets);
                child.setPadding(l, t, r, b);
            } else {
                IMPL.applyMarginInsets(lp, cgrav, lastInsets);
                lp.leftMargin += lp.leftMargin2;
                lp.topMargin += lp.topMargin2;
                lp.rightMargin += lp.rightMargin2;
                lp.bottomMargin += lp.bottomMargin2;
            }
        }
    }
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    for (int i = 0; i < childCount; i++) {
        final View child = getChildAt(i);
        if (child.getVisibility() == GONE || ViewCompat.getFitsSystemWindows(child)) {
            continue;
        }
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();
        lp.leftMargin -= lp.leftMargin2;
        lp.topMargin -= lp.topMargin2;
        lp.rightMargin -= lp.rightMargin2;
        lp.bottomMargin -= lp.bottomMargin2;
    }
}

From source file:com.iangclifton.android.floatlabel.FloatLabel.java

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void layoutChild(View child, int parentLeft, int parentTop, int parentRight, int parentBottom) {
    if (child.getVisibility() != GONE) {
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();

        final int width = child.getMeasuredWidth();
        final int height = child.getMeasuredHeight();

        int childLeft;
        final int childTop = parentTop + lp.topMargin;

        int gravity = lp.gravity;
        if (gravity == -1) {
            gravity = Gravity.TOP | Gravity.START;
        }//from   w w  w. j ava 2 s  .c om

        final int layoutDirection;
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
            layoutDirection = LAYOUT_DIRECTION_LTR;
        } else {
            layoutDirection = getLayoutDirection();
        }

        final int absoluteGravity = GravityCompat.getAbsoluteGravity(gravity, layoutDirection);

        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
        case Gravity.CENTER_HORIZONTAL:
            childLeft = parentLeft + (parentRight - parentLeft - width) / 2 + lp.leftMargin - lp.rightMargin;
            break;
        case Gravity.RIGHT:
            childLeft = parentRight - width - lp.rightMargin;
            break;
        case Gravity.LEFT:
        default:
            childLeft = parentLeft + lp.leftMargin;
        }

        child.layout(childLeft, childTop, childLeft + width, childTop + height);
    }
}

From source file:com.vinfotech.widget.FloatLabel.java

@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private void layoutChild(View child, int parentLeft, int parentTop, int parentRight, int parentBottom) {
    if (child.getVisibility() != GONE) {
        final LayoutParams lp = (LayoutParams) child.getLayoutParams();

        final int width = child.getMeasuredWidth();
        final int height = child.getMeasuredHeight();

        int childLeft;
        final int childTop = parentTop + lp.topMargin;

        int gravity = lp.gravity;
        if (gravity == -1) {
            gravity = Gravity.TOP | Gravity.START;
        }/*from  ww w . j a  v  a 2 s.  co m*/

        final int layoutDirection;
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
            layoutDirection = LAYOUT_DIRECTION_LTR;
        } else {
            layoutDirection = getLayoutDirection();
        }

        final int absoluteGravity = GravityCompat.getAbsoluteGravity(gravity, layoutDirection);

        switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
        case Gravity.CENTER_HORIZONTAL:
            childLeft = parentLeft + (parentRight - parentLeft - width) / 2 + lp.leftMargin - lp.rightMargin;
            break;
        case Gravity.RIGHT:
            childLeft = parentRight - width - lp.rightMargin;
            break;
        case Gravity.LEFT:

        default:
            childLeft = parentLeft + lp.leftMargin;
        }

        child.layout(childLeft, childTop, childLeft + width, childTop + height);
    }
}