Example usage for android.view View getMeasuredHeight

List of usage examples for android.view View getMeasuredHeight

Introduction

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

Prototype

public final int getMeasuredHeight() 

Source Link

Document

Like #getMeasuredHeightAndState() , but only returns the raw height component (that is the result is masked by #MEASURED_SIZE_MASK ).

Usage

From source file:Main.java

/**
 * Get center locations delta between two views.
 *
 * @param viewA View A.// w  w w . j  ava 2  s.  c o m
 * @param viewB View B.
 * @return Locations delta as a point.
 */
private static PointF getCenterLocationsDelta(final View viewA, final View viewB) {
    final int[] fromLocation = new int[2];
    viewA.getLocationOnScreen(fromLocation);
    final int[] toLocation = new int[2];
    viewB.getLocationOnScreen(toLocation);
    final int deltaX = toLocation[0] - fromLocation[0] + viewB.getMeasuredWidth() / 2
            - viewA.getMeasuredWidth() / 2;
    final int deltaY = toLocation[1] - fromLocation[1] + viewB.getMeasuredHeight() / 2
            - viewA.getMeasuredHeight() / 2;
    return new PointF(deltaX, deltaY);
}

From source file:com.google.cast.samples.games.gamedebugger.DebuggerFragment.java

public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        return;//  w w w. j  av a2s.  co  m
    }

    int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
        totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
}

From source file:Main.java

/**
 * * Method for Setting the Height of the ListView dynamically.
 * *** Hack to fix the issue of not showing all the items of the ListView
 * *** when placed inside a ScrollView  ***
 *///ww  w . j  a  va2s .c o  m
public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null)
        return;

    int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.UNSPECIFIED);
    int totalHeight = 0;
    View view = null;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        view = listAdapter.getView(i, view, listView);
        if (i == 0)
            view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));

        view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
        totalHeight += view.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();
}

From source file:Main.java

public static void setListViewSize(ListView list) {
    ListAdapter myListAdapter = list.getAdapter();
    if (myListAdapter == null) {
        //do nothing return null
        return;/*  w w w.j ava 2 s. c  om*/
    }

    //set listAdapter in loop for getting final size
    int desiredWidth = View.MeasureSpec.makeMeasureSpec(list.getWidth(), View.MeasureSpec.UNSPECIFIED);
    int totalHeight = 0;
    View view = null;
    for (int i = 0; i < myListAdapter.getCount(); i++) {
        view = myListAdapter.getView(i, view, list);
        if (i == 0) {
            view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
        }
        view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
        totalHeight += view.getMeasuredHeight();
    }

    //setting listview item in adapter
    ViewGroup.LayoutParams params = list.getLayoutParams();
    params.height = totalHeight + (list.getDividerHeight() * (myListAdapter.getCount() - 1));
    list.setLayoutParams(params);
}

From source file:Main.java

public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null)
        return;/* w  w  w  .  ja v a  2 s.c om*/

    int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.UNSPECIFIED);
    int totalHeight = 0;
    View view = null;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        view = listAdapter.getView(i, view, listView);
        if (i == 0)
            view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));

        view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
        totalHeight += view.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();

    listView.setOnTouchListener(new View.OnTouchListener() {
        // Setting on Touch Listener for handling the touch inside ScrollView
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_MOVE) {
                return true; // Indicates that this has been handled by you and will not be forwarded further.
            }
            return false;
        }
    });
}

From source file:Main.java

public static void enterReveal(final View view) {
    view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override/*from w  ww  .ja  va2 s  .  c o m*/
        public void onGlobalLayout() {
            Animator animator = null;

            view.getViewTreeObserver().removeOnGlobalLayoutListener(this);

            int cx = view.getMeasuredWidth() / 2;
            int cy = view.getMeasuredHeight() / 2;

            try {
                final int finalRadius = Math.max(view.getWidth(), view.getHeight()) / 2 + 125;
                animator = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);

                animator.addListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        super.onAnimationEnd(animation);
                    }
                });
            } catch (Exception ignored) {
            }

            view.setVisibility(View.VISIBLE);
            if (animator != null) {
                animator.start();
            }
        }
    });
}

From source file:cn.bingoogolapple.refreshlayout.util.BGARefreshScrollingUtil.java

public static boolean isRecyclerViewToTop(RecyclerView recyclerView) {
    if (recyclerView != null) {
        RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
        if (manager == null) {
            return true;
        }//from  www.  ja v a 2s  . c o m
        if (manager.getItemCount() == 0) {
            return true;
        }

        if (manager instanceof LinearLayoutManager) {
            LinearLayoutManager layoutManager = (LinearLayoutManager) manager;

            int firstChildTop = 0;
            if (recyclerView.getChildCount() > 0) {
                // ?item?
                View firstVisibleChild = recyclerView.getChildAt(0);
                if (firstVisibleChild != null
                        && firstVisibleChild.getMeasuredHeight() >= recyclerView.getMeasuredHeight()) {
                    if (android.os.Build.VERSION.SDK_INT < 14) {
                        return !(ViewCompat.canScrollVertically(recyclerView, -1)
                                || recyclerView.getScrollY() > 0);
                    } else {
                        return !ViewCompat.canScrollVertically(recyclerView, -1);
                    }
                }

                // RecyclerView???0??top

                // itemtopMargin?0??
                View firstChild = recyclerView.getChildAt(0);
                RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) firstChild
                        .getLayoutParams();
                firstChildTop = firstChild.getTop() - layoutParams.topMargin
                        - getRecyclerViewItemTopInset(layoutParams) - recyclerView.getPaddingTop();
            }

            if (layoutManager.findFirstCompletelyVisibleItemPosition() < 1 && firstChildTop == 0) {
                return true;
            }
        } else if (manager instanceof StaggeredGridLayoutManager) {
            StaggeredGridLayoutManager layoutManager = (StaggeredGridLayoutManager) manager;

            int[] out = layoutManager.findFirstCompletelyVisibleItemPositions(null);
            if (out[0] < 1) {
                return true;
            }
        }
    }
    return false;
}

From source file:cn.zy.ef.refresh.utils.ScrollingUtil.java

public static boolean isRecyclerViewToTop(RecyclerView recyclerView) {
    if (recyclerView != null) {
        RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
        if (manager == null) {
            return true;
        }/*w ww.  j  ava2 s  .co m*/
        if (manager.getItemCount() == 0) {
            return true;
        }

        if (manager instanceof LinearLayoutManager) {
            LinearLayoutManager layoutManager = (LinearLayoutManager) manager;

            int firstChildTop = 0;
            if (recyclerView.getChildCount() > 0) {
                // ?item?
                View firstVisibleChild = recyclerView.getChildAt(0);
                if (firstVisibleChild != null
                        && firstVisibleChild.getMeasuredHeight() >= recyclerView.getMeasuredHeight()) {
                    if (Build.VERSION.SDK_INT < 14) {
                        return !(ViewCompat.canScrollVertically(recyclerView, -1)
                                || recyclerView.getScrollY() > 0);
                    } else {
                        return !ViewCompat.canScrollVertically(recyclerView, -1);
                    }
                }

                // RecyclerView???0??top

                // itemtopMargin?0??
                View firstChild = recyclerView.getChildAt(0);
                RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) firstChild
                        .getLayoutParams();
                firstChildTop = firstChild.getTop() - layoutParams.topMargin
                        - getRecyclerViewItemTopInset(layoutParams) - recyclerView.getPaddingTop();
            }

            if (layoutManager.findFirstCompletelyVisibleItemPosition() < 1 && firstChildTop == 0) {
                return true;
            }
        } else if (manager instanceof StaggeredGridLayoutManager) {
            StaggeredGridLayoutManager layoutManager = (StaggeredGridLayoutManager) manager;

            int[] out = layoutManager.findFirstCompletelyVisibleItemPositions(null);
            if (out[0] < 1) {
                return true;
            }
        }
    }
    return false;
}

From source file:Main.java

public static void expand(final View view, final View parentView, final ViewGroup rootContainer) {
    if (view == null || parentView == null || rootContainer == null) {
        return;/*from w  w w . j  a v  a2s  .  co m*/
    }

    view.measure(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

    int targetHeight = view.getMeasuredHeight();
    expandInner(view, parentView, rootContainer, targetHeight);
}

From source file:Main.java

public static void layoutView(View v, int width, int height) {
    // validate view.width and view.height
    v.layout(0, 0, width, height);// www.  j  a v a 2  s.  com
    int measuredWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
    int measuredHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY);
    // validate view.measurewidth and view.measureheight
    v.measure(measuredWidth, measuredHeight);
    v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
}