List of usage examples for android.support.v4.view GravityCompat getAbsoluteGravity
public static int getAbsoluteGravity(int i, int i2)
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); } }