问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android view怎么获取高度

发布网友 发布时间:2022-04-23 05:46

我来回答

3个回答

热心网友 时间:2023-09-16 07:56

在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();
}

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

热心网友 时间:2023-09-16 07:56

getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);///取得整个视图部分,注意,如果你要设置标题样式,这个必须出现在标题样式之后,否则会出错
int top = rect.top;////状态栏的高度,所以rect.height,rect.width分别是系统的高度的宽度
View v = getWindow().findViewById(Window.ID_ANDROID_CONTENT);///获得根视图
int top2 = v.getTop();///状态栏标题栏的总高度,所以标题栏的高度为top2-top
int width = v.getWidth();///视图的宽度,这个宽度好像总是最大的那个
int height = v.getHeight();////视图的高度,不包括状态栏和标题栏
如果只想取得屏幕大小,可以用
Display display = getWindowManager().getDefaultDisplay() ;

热心网友 时间:2023-09-16 07:57

在一个activity中有一个textview,设置字数不同,如何能在打开这个activity时就及时获得这个textview在activity的高度,有利于我对textview的高度进行设置。

在onCreate函数中,View还未被展开,是无法获得高度的。
所以可以对TextvView注册一个监听者:
ViewTreeObserver vto = tv.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {

heigh = appDescription.getHeight();

tv.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
路由器网线一米多少钱 东芝电视怎么投屏安卓手机 东芝电视怎么投屏 东芝电视投屏功能在哪里 指甲根部半月白 ...在指甲中部黑线长起 还有就是月牙上有白色一块 都在同一个指_百度... 我农业银行五年定期无密码存款,身份证没了,仅凭身份证复印件和存款单... 混凝土强度回弹怎么测算推定值,是否满足要求?一篇文章讲明白_百度知 ... 发动机舱有胶皮味跟安装防盗器有关系吗 cb400f启动后有股胶皮味道 一个袋子装了半袋米,倒出三分之一多1千克后还剩19千克... Android 在一个activity 的onCreate中如何获取屏幕最上方状态栏的高度 android 上面标题栏该多高 如何获取Android手机底部导航栏的高度 Android如何获取系统高度、标题栏和状态栏高度 台式重装完系统开机直接进入uefi bios ... 怎么进入桌面 华硕uefi bios utility-ez mode 启动项怎么设置 每次都会进bios界面? 怎么在bios设置uefi启动 UEFI的BIOS怎么设置U盘启动? 2020年国家公务员考试判断推理—类比推理语义关系呵呵学习? 2020国家公务员考试常识判断知识点 如何在电视上看戏? 电脑一开机就进入“uefi bios utility”,怎么设置? 使用UEFI做启动盘后,开机无法进入BIOS设置了,怎么回事 榴莲皮怎么做汤。详细, 怎么在电视上打开监控? 2020年国家公务员考试判断推理类比推理语义关系 华擎主板在BIOS种怎样设置UEFI启动 电脑一开机就进入uefi bios utility 怎么设置? 2020年国家公务员考试分析推理之排除法 旧手机丢了微信聊天记录怎么找回? android状态栏高度是多少 android导航栏高度是多少 android 怎么设置标题栏大小 android开发中如何自定义标题栏 安卓UI中1080*1920的状态栏标题栏之类的尺寸标准是什么 android 状态栏高度是多少 在android的webview里面怎么获取当前网页的标题? android 如何获取AlertDialog的宽高 如何将Android中的标题栏自定义 如何修改android标题栏界面 - 信息提示 Android 如何获取最顶端的Top Activity win10共享打印机提示windows无法连接到打印机,请检查打印机名并重试 安卓开发长度多少dp 减去状态栏和标题栏 手机丢了怎么可以收到验证码? 添加打印机显示windows无法连接到打印机? 不带手机怎么接收验证码? windows无法连接到打印机,要检查打印机名并重试,这要怎么办? 手机丢了!怎么可以收到验证码 我就是手机不见了我还怎么收到验证码?