Android 获取View绘制前的高度

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
在Android开发过程中,我们可能需要获取View绘制前的高度或者宽度,一种的可能情形是我们初始化的时候让某个View是Visible = Gone的,当我们触发某个事件的时候需要它显示并且希望有一些动画效果。这时候我们就要获取这个View显示前即绘制前的宽度或者高度。原理很简单,我 们知道,View的绘制过程发生之前,会先执行onMeasure方法。那么我们就可以利用反射来或者我们需要的值。下面给出获取高度的代码,宽度同理。
private int getTargetHeight(View v) {

    try {
        Method m = v.getClass().getDeclaredMethod("onMeasure", int.class,
                int.class);
        m.setAccessible(true);
        m.invoke(v, MeasureSpec.makeMeasureSpec(
                ((View) v.getParent()).getMeasuredWidth(),
                MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(0,
                MeasureSpec.UNSPECIFIED));
    } catch (Exception e) {

    }
    return v.getMeasuredHeight();
}

拿到这个高度之后我们就可以做我们想做的动画效果或者是其他的事情了。

标签: 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:遍历某文件夹下的所有文件和文件夹php代码

下一篇:php实现base64的编码和解码