Example usage for android.view View getLeft

List of usage examples for android.view View getLeft

Introduction

In this page you can find the example usage for android.view View getLeft.

Prototype

@ViewDebug.CapturedViewProperty
public final int getLeft() 

Source Link

Document

Left position of this view relative to its parent.

Usage

From source file:com.chenglong.muscle.ui.LazyViewPager.java

/**
 * This method will be invoked when the current page is scrolled, either as
 * part of a programmatically initiated smooth scroll or a user initiated
 * touch scroll. If you override this method you must call through to the
 * superclass implementation (e.g. super.onPageScrolled(position, offset,
 * offsetPixels)) before onPageScrolled returns.
 *
 * @param position     Position index of the first page currently being displayed.
 *                     Page position+1 will be visible if positionOffset is nonzero.
 * @param offset       Value from [0, 1) indicating the offset from the page at
 *                     position.//from  ww  w  .ja  va 2s  .c  o m
 * @param offsetPixels Value in pixels indicating the offset from position.
 */
protected void onPageScrolled(int position, float offset, int offsetPixels) {
    // Offset any decor views if needed - keep them on-screen at all times.
    if (mDecorChildCount > 0) {
        final int scrollX = getScrollX();
        int paddingLeft = getPaddingLeft();
        int paddingRight = getPaddingRight();
        final int width = getWidth();
        final int childCount = getChildCount();
        for (int i = 0; i < childCount; i++) {
            final View child = getChildAt(i);
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            if (!lp.isDecor)
                continue;
            final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
            int childLeft = 0;
            switch (hgrav) {
            default:
                childLeft = paddingLeft;
                break;
            case Gravity.LEFT:
                childLeft = paddingLeft;
                paddingLeft += child.getWidth();
                break;
            case Gravity.CENTER_HORIZONTAL:
                childLeft = Math.max((width - child.getMeasuredWidth()) / 2, paddingLeft);
                break;
            case Gravity.RIGHT:
                childLeft = width - paddingRight - child.getMeasuredWidth();
                paddingRight += child.getMeasuredWidth();
                break;
            }
            childLeft += scrollX;
            final int childOffset = childLeft - child.getLeft();
            if (childOffset != 0) {
                child.offsetLeftAndRight(childOffset);
            }
        }
    }
    if (mOnPageChangeListener != null) {
        mOnPageChangeListener.onPageScrolled(position, offset, offsetPixels);
    }
    if (mInternalPageChangeListener != null) {
        mInternalPageChangeListener.onPageScrolled(position, offset, offsetPixels);
    }
    mCalledSuper = true;
}

From source file:com.aidy.bottomdrawerlayout.AllDrawerLayout.java

/**
 * Close the specified drawer view by animating it into view.
 * /*from   www  .j av  a  2  s .  c o  m*/
 * @param drawerView
 *            Drawer view to close
 */
public void closeDrawer(View drawerView) {
    if (!isDrawerView(drawerView)) {
        throw new IllegalArgumentException("View " + drawerView + " is not a sliding drawer");
    }

    if (mFirstLayout) {
        final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams();
        lp.onScreen = 0.f;
        lp.knownOpen = false;
    } else {
        switch (getDrawerViewAbsoluteGravity(drawerView)) {
        case Gravity.LEFT:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT))
                mLeftDragger.smoothSlideViewTo(drawerView, -drawerView.getWidth(), drawerView.getTop());
            break;
        case Gravity.RIGHT:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.RIGHT))
                mRightDragger.smoothSlideViewTo(drawerView, getWidth(), drawerView.getTop());
            break;
        case Gravity.TOP:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.TOP))
                mTopDragger.smoothSlideViewTo(drawerView, drawerView.getLeft(), -drawerView.getHeight());
            break;
        case Gravity.BOTTOM:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.BOTTOM))
                mBottomDragger.smoothSlideViewTo(drawerView, drawerView.getLeft(), getHeight());
            break;
        default:
            mBottomDragger.smoothSlideViewTo(drawerView, drawerView.getLeft(), getHeight());
            break;
        }
    }
    invalidate();
}

From source file:com.baiiu.autoloopviewpager.loopvp.LoopViewPager.java

/**
 * Tests scrollability within child views of v given a delta of dx.
 *
 * @param v View to test for horizontal scrollability
 * @param checkV Whether the view v passed should itself be checked for
 * scrollability (true), or just its children (false).
 * @param dx Delta scrolled in pixels/*from w ww  .j  av a2s  . co m*/
 * @param x X coordinate of the active touch point
 * @param y Y coordinate of the active touch point
 * @return true if child views of v can be scrolled by delta of dx.
 */
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if (!canScroll)
        return true;

    if (v instanceof ViewGroup) {
        final ViewGroup group = (ViewGroup) v;
        final int scrollX = v.getScrollX();
        final int scrollY = v.getScrollY();
        final int count = group.getChildCount();
        // Count backwards - let topmost views consume scroll distance
        // first.
        for (int i = count - 1; i >= 0; i--) {
            // TODO: Add versioned support here for transformed views.
            // This will not work for transformed views in Honeycomb+
            final View child = group.getChildAt(i);
            if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight()
                    && y + scrollY >= child.getTop() && y + scrollY < child.getBottom() && canScroll(child,
                            true, dx, x + scrollX - child.getLeft(), y + scrollY - child.getTop())) {
                return true;
            }
        }
    }

    return checkV && ViewCompat.canScrollHorizontally(v, -dx);
}

From source file:com.android.backups.StaggeredGridViewByJaumo.java

@Override
public Parcelable onSaveInstanceState() {
    final Parcelable superState = super.onSaveInstanceState();
    final SavedState ss = new SavedState(superState);
    final int position = mFirstPosition;
    ss.position = mFirstPosition;// ww  w.j  a v  a  2 s .c o m

    if (position >= 0 && mAdapter != null && position < mAdapter.getCount()) {
        ss.firstId = mAdapter.getItemId(position);
    }

    if (getChildCount() > 0) {
        int itemMargin = getItemMargin(position);
        int topOffsets[] = new int[this.mColCount];

        if (this.mColWidth > 0)
            for (int i = 0; i < mColCount; i++) {
                if (getChildAt(i) != null) {
                    final View child = getChildAt(i);
                    final int left = child.getLeft();
                    int col = 0;
                    Log.w("mColWidth", mColWidth + " " + left);

                    // determine the column by cycling widths
                    while (left > col * (this.mColWidth + itemMargin * 2) + getPaddingLeft()) {
                        col++;
                    }

                    try {
                        topOffsets[col] = getChildAt(i).getTop() - itemMargin - getPaddingTop();
                    } catch (IndexOutOfBoundsException e) {
                        // Ignore
                    }
                }

            }

        ss.topOffsets = topOffsets;

        // convert nested arraylist so it can be parcelable
        ArrayList<ColMap> convert = new ArrayList<ColMap>();
        for (ArrayList<Integer> cols : mColMappings) {
            convert.add(new ColMap(cols));
        }

        ss.mapping = convert;
    }
    return ss;
}

From source file:au.com.glassechidna.velocityviewpager.VelocityViewPager.java

/**
 * Tests scrollability within child views of v given a delta of dx.
 *
 * @param v View to test for horizontal scrollability
 * @param checkV Whether the view v passed should itself be checked for scrollability (true),
 *               or just its children (false).
 * @param dx Delta scrolled in pixels/* w ww  .  j ava 2 s  .c  o  m*/
 * @param x X coordinate of the active touch point
 * @param y Y coordinate of the active touch point
 * @return true if child views of v can be scrolled by delta of dx.
 */
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if (v instanceof ViewGroup) {
        final ViewGroup group = (ViewGroup) v;
        final int scrollX = v.getScrollX();
        final int scrollY = v.getScrollY();
        final int count = group.getChildCount();
        // Count backwards - let topmost views consume scroll distance first.
        for (int i = count - 1; i >= 0; i--) {
            // TODO: Add versioned support here for transformed views.
            // This will not work for transformed views in Honeycomb+
            final View child = group.getChildAt(i);
            if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight()
                    && y + scrollY >= child.getTop() && y + scrollY < child.getBottom() && canScroll(child,
                            true, dx, x + scrollX - child.getLeft(), y + scrollY - child.getTop())) {
                return true;
            }
        }
    }

    return checkV && ViewCompat.canScrollHorizontally(v, -dx);
}

From source file:com.benny.openlauncher.widget.SmoothViewPager.java

/**
 * Tests scrollability within child views of v given a delta of dx.
 *
 * @param v      View to test for horizontal scrollability
 * @param checkV Whether the view v passed should itself be checked for scrollability (true),
 *               or just its children (false).
 * @param dx     Delta scrolled in pixels
 * @param x      X coordinate of the active touch point
 * @param y      Y coordinate of the active touch point
 * @return true if child views of v can be scrolled by delta of dx.
 *///from w  w  w.j a  va2  s.co m
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
    if (v instanceof ViewGroup) {
        final ViewGroup group = (ViewGroup) v;
        final int scrollX = v.getScrollX();
        final int scrollY = v.getScrollY();
        final int count = group.getChildCount();
        // Count backwards - let topmost views consume scroll distance first.
        for (int i = count - 1; i >= 0; i--) {
            // This will not work for transformed views in Honeycomb+
            final View child = group.getChildAt(i);

            //Custom check for launcher

            //end

            if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight()
                    && y + scrollY >= child.getTop() && y + scrollY < child.getBottom() && canScroll(child,
                            true, dx, x + scrollX - child.getLeft(), y + scrollY - child.getTop())) {
                return true;
            }
        }
    }

    return checkV && ViewCompat.canScrollHorizontally(v, -dx);
}

From source file:com.aidy.bottomdrawerlayout.AllDrawerLayout.java

/**
 * Open the specified drawer view by animating it into view.
 * /* ww w  .java 2s .  c om*/
 * @param drawerView
 *            Drawer view to open
 */
public void openDrawer(View drawerView) {
    if (!isDrawerView(drawerView)) {
        throw new IllegalArgumentException("View " + drawerView + " is not a sliding drawer");
    }

    if (mFirstLayout) {
        final LayoutParams lp = (LayoutParams) drawerView.getLayoutParams();
        lp.onScreen = 1.f;
        lp.knownOpen = true;
    } else {
        switch (getDrawerViewAbsoluteGravity(drawerView)) {
        case Gravity.LEFT:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.LEFT))
                mLeftDragger.smoothSlideViewTo(drawerView, 0, drawerView.getTop());
            break;
        case Gravity.RIGHT:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.RIGHT))
                mRightDragger.smoothSlideViewTo(drawerView, getWidth() - drawerView.getWidth(),
                        drawerView.getTop());
            break;
        case Gravity.TOP:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.TOP))
                mTopDragger.smoothSlideViewTo(drawerView, drawerView.getLeft(), 0);
            break;
        case Gravity.BOTTOM:
            if (checkDrawerViewAbsoluteGravity(drawerView, Gravity.BOTTOM))
                mBottomDragger.smoothSlideViewTo(drawerView, getHeight() - drawerView.getHeight(),
                        drawerView.getLeft());
            break;
        default:
            mBottomDragger.smoothSlideViewTo(drawerView, getHeight() - drawerView.getHeight(),
                    drawerView.getLeft());
            break;
        }
    }
    invalidate();
}

From source file:beichen.douban.ui.view.LazyViewPager.java

/**
 * This method will be invoked when the current page is scrolled, either as
 * part of a programmatically initiated smooth scroll or a user initiated
 * touch scroll. If you override this method you must call through to the
 * superclass implementation (e.g. super.onPageScrolled(position, offset,
 * offsetPixels)) before onPageScrolled returns.
 * //from www .  ja va2s . c om
 * @param position
 *            Position index of the first page currently being displayed.
 *            Page position+1 will be visible if positionOffset is nonzero.
 * @param offset
 *            Value from [0, 1) indicating the offset from the page at
 *            position.
 * @param offsetPixels
 *            Value in pixels indicating the offset from position.
 */
protected void onPageScrolled(int position, float offset, int offsetPixels) {
    // Offset any decor views if needed - keep them on-screen at all times.
    if (mDecorChildCount > 0) {
        final int scrollX = getScrollX();
        int paddingLeft = getPaddingLeft();
        int paddingRight = getPaddingRight();
        final int width = getWidth();
        final int childCount = getChildCount();
        for (int i = 0; i < childCount; i++) {
            final View child = getChildAt(i);
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            if (!lp.isDecor)
                continue;

            final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
            int childLeft = 0;
            switch (hgrav) {
            default:
                childLeft = paddingLeft;
                break;
            case Gravity.LEFT:
                childLeft = paddingLeft;
                paddingLeft += child.getWidth();
                break;
            case Gravity.CENTER_HORIZONTAL:
                childLeft = Math.max((width - child.getMeasuredWidth()) / 2, paddingLeft);
                break;
            case Gravity.RIGHT:
                childLeft = width - paddingRight - child.getMeasuredWidth();
                paddingRight += child.getMeasuredWidth();
                break;
            }
            childLeft += scrollX;

            final int childOffset = childLeft - child.getLeft();
            if (childOffset != 0) {
                child.offsetLeftAndRight(childOffset);
            }
        }
    }

    if (mOnPageChangeListener != null) {
        mOnPageChangeListener.onPageScrolled(position, offset, offsetPixels);
    }
    if (mInternalPageChangeListener != null) {
        mInternalPageChangeListener.onPageScrolled(position, offset, offsetPixels);
    }
    mCalledSuper = true;
}

From source file:au.com.glassechidna.velocityviewpager.VelocityViewPager.java

private void transformPages() {
    if (mPageTransformer != null) {
        final int scrollX = getScrollX();
        final int childCount = getChildCount();
        for (int i = 0; i < childCount; i++) {
            final View child = getChildAt(i);
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();

            if (lp.isDecor)
                continue;

            final float transformPos = (float) (child.getLeft() - scrollX) / getClientWidth();
            mPageTransformer.transformPage(child, transformPos);
        }/*from ww w .  j  av a  2  s. com*/
    }
}

From source file:android.support.design.widget.CoordinatorLayout.java

/**
 * Get the position rect for the given child. If the child has currently requested layout
 * or has a visibility of GONE.//from   www.j  a v a2s  . c  o m
 *
 * @param child child view to check
 * @param transform true to include transformation in the output rect, false to
 *                        only account for the base position
 * @param out rect to set to the output values
 */
void getChildRect(View child, boolean transform, Rect out) {
    if (child.isLayoutRequested() || child.getVisibility() == View.GONE) {
        out.setEmpty();
        return;
    }
    if (transform) {
        getDescendantRect(child, out);
    } else {
        out.set(child.getLeft(), child.getTop(), child.getRight(), child.getBottom());
    }
}