Android 获取View绘制前的高度
发布时间:2020-12-14 23:37:47 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 在Android开发过程中,我们可能需要获取View绘制前的高度或者宽度,一种的可能情形是我们初始化的时候让某个View是Visible = Gone的,当我们触发某个
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
在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(); } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |