动态获得View的宽度和高度

Android动态调整View的宽度和高度 然后,我们通过getLayoutParams()方法获取到当前的LayoutParams,接着修改width属性为200,最后将修改后的LayoutParams应用到View中。同样,我们首先通过findViewById()方法获取到要设置高度的View,然后通过getLayoutParams()方法获取到当前的LayoutParams。动态设置View的高度的方法与设置宽度的方法类似,也是通过LayoutParams来实现。除了直接设置View的宽度和高度,我们还可以使用动画效果来改变View的尺寸。 阅读详情

在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果?

这是为什么呢?

在调用oncreate()方法时,界面处于不可见状态,内存加载组件还没有绘制出来,你是无法获取他的尺寸。

那如何在绘制组件之前能获取到该组件的尺寸大小呢?

这里有三种方法,经过验证的:

方法一  :
//测量方法
?
1
2
3
4
5
int width =View.MeasureSpec.makeMeasureSpec( 0 ,View.MeasureSpec.UNSPECIFIED);
int height =View.MeasureSpec.makeMeasureSpec( 0 ,View.MeasureSpec.UNSPECIFIED);
view.measure(width,height);
int height=view.getMeasuredHeight();
int width=view.getMeasuredWidth();

方法二  :
?
1
2
3
4
5
6
7
8
9
//增加组件绘制之前的监听
ViewTreeObserver vto =view.getViewTreeObserver();
vto.addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() {
    @Override
     public booleanonPreDraw() {
        int height =view.getMeasuredHeight();
        int width =view.getMeasuredWidth();    
    }
});
方法三  : 
?
1
2
3
4
5
6
7
8
9
10
//增加整体布局监听
ViewTreeObserver vto = view.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener( new OnGlobalLayoutListener(){
     @Override 
     public voidonGlobalLayout() {
       view.getViewTreeObserver().removeGlobalOnLayoutListener( this );     
     int height =view.getMeasuredHeight();
      int width =view.getMeasuredWidth(); 
     } 
});

那么,在activity进入运行期时,组件的尺寸获取方法就很简单了,直接getWidth()和getHeight().

原文链接

http://blog.youkuaiyun.com/yangdeli888/article/details/25405263

获取View高度的几种方法 我们很多时候需要动态获取View的高度与宽度,可经常在代码获取的时候是0,这个时候怎么办呢,有三种获取方法 立即下载

相关推荐

HID报告描述符实战解析:从Usage到Item的完整设计流程

本文深入解析了HID报告描述符的设计流程,从核心概念Usage(用途定义)入手,详细阐述了如何通过Item(条目)的三种角色——全局、局部与主干,构建出能被系统正确识别的设备“说明书”。文章以标准USB鼠标和键盘为例进行实战拆解,并介绍了使用Report ID与自定义设备等进阶设计方法,帮助开发者掌握这一实现USB设备即插即用的关键技术。

weixin_29230865的博客 282

【Android】获取TextView宽度或高度

【android】实时获取TextView的高度或者宽度

weixin_44500303的博客 4625

计算机国际会议中的proceedings、conference、paper、workshop、demo:如何区分与选择?

本文详细解析了计算机国际会议中的核心概念:Conference(会议)是学术交流的主舞台,Paper(论文)是研究成果的书面呈现,被接收后收录于Proceedings(会议论文集)。Workshop(研讨会)聚焦前沿细分领域,Demo(演示)则侧重系统与工具的可交互展示。文章为研究者根据自身阶段与工作类型,如何区分与选择投稿目标提供了实用指南。

weixin_29269441的博客 563

Android 获得view的宽和高

在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果? 这是为什么呢? 在调用oncreate()方法时,界面处于不可见状态,内存加载组件还没有绘制出来,你是无法获取他的尺寸。 那如何在绘制组件之前能获取到该组件的尺寸大小呢? 这里有三种方法,经过验证的:

Delion 6万+

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

5G边缘计算:核心网下沉革命

5G核心网与边缘计算的深度融合,通过UPF下沉、本地流量卸载等关键技术,实现了低时延、高效能的分布式计算架构。该技术将数据处理从核心网向边缘节点转移,支持工业控制、车联网、远程医疗等场景的1-10ms超低时延需求。5G核心网的SBA架构和CUPS设计为边缘计算提供了灵活部署基础,SMF、PCF等网元协同确保业务质量与可靠性。

Qinti_mm的博客 1402

Android 一个动态获取View宽高的方法

使用场景可以为已经绘画出的view,想根据比例动态改变宽高。

liujichangdeboke的博客 964

每天一个优秀提示词学习收藏 - 文本创作篇(二)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本创作 Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2402

android 动态获得View的宽度和高度

在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果? 这是为什么呢? 在调用oncreate()方法时,界面处于不可见状态,内存加载组件还没有绘制出来,你是无法获取他的尺寸。 那如何在绘制组件之前能获取到该组件的尺寸大小呢? 这里有三种方法,经过验证的: 方法一: //测量方法 int width =View.MeasureSpec.makeMeasureSpec( 0...

az44yao的专栏 1315

3D视觉引导技术在机器人焊接中的应用

通过对比传统的2D视觉和3D视觉技术在焊接领域的应用差异,探讨了3D视觉引导技术在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势。本文对3D视觉引导技术在机器人焊接中的应用进行了深入探讨,总结了其在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势,并通过应用案例展示了其在焊接路径规划、焊缝检测和焊接质量控制等方面的重要作用。1. 提高焊接精度:3D视觉引导技术能够精确测量焊接工件的三维形状和位置,为机器人提供精准的焊接路径规划和跟踪,从而提高焊接精度。三、3D视觉引导技术概述。

2302_79273122的博客 1836

基于Simulink建模仿真的滑模控制的磁悬浮轴承稳定控制仿真

磁悬浮轴承(Magnetic Bearing)利用电磁力来支撑和定位转子,无需机械接触,因此在高速旋转设备中具有广泛应用。滑模控制(Sliding Mode Control, SMC)是一种鲁棒性强的非线性控制方法,适用于磁悬浮轴承的精确控制。以下是基于Simulink的磁悬浮轴承滑模控制系统的详细设计与仿真步骤。通过上述步骤,设计并实现了基于 Simulink 和 Control System Toolbox 的磁悬浮轴承滑模控制系统。

MHD0815的博客 780

Android之如何动态获取View的宽高

ViewTreeObserver.OnGlobalLayoutListener:适用于监听视图树的全局布局事件。 onWindowFocusChanged:适用于自定义视图,当视图获取到焦点时获取宽高。 post:适用于将任务放入消息队列,在视图布局完成后执行。 onLayout:适用于自定义视图,当视图完成布局时获取宽高。

追梦的鱼儿 1569

实战|基于Kappa架构的用户行为实时分析平台搭建教程

数据源:用Kafka存储全量数据(实时+历史),作为“事实来源”;处理引擎:用Flink等流处理引擎,读取Kafka中的数据,执行清洗、转换、聚合等操作;存储层:将处理结果写入实时存储(如Elasticsearch)或批量存储(如Hive);消费层:用可视化工具(如Kibana)展示结果,或提供API供业务系统调用。Kappa架构的关键设计原则全量数据存于Kafka:Kafka的“无限 retention”特性(默认保留7天,可配置更长)让它成为全量数据的存储介质;用流处理引擎处理所有数据。

Java大师兄的博客 797

微信小程序实现动态改变view标签宽度和高度的方法

微信小程序实现动态改变view标签宽度和高度的方法 原创2018-05-12 16:51:1008250 本文主要介绍微信小程序实现动态改变view标签宽度和高度的方法,涉及微信小程序事件响应及使用setData针对data数据动态操作相关实现技巧,希望能帮助到大家。 1、效果展示 2、关键代码 index.wxml文件 1 2 3 4...

cxu123321的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android动态设置view高度或者宽度

一般的话我们都不需要动态设置view高度的,为什么有这个需求呢?更多是来自UI妹子们,比如下面这张图 (图一) UI想让banner底部距离背景高度是固定的,这样的话可以让在各种手机上看起来banner间距很完美,这样的话问题来了 背景图是主fragment里面layout的view,banner图是子fragment里面layout的view,两个view完全属于不同的view如何实现间距完全...

梁超杰 9867

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 动态改变高度,android 动态设置View的高度和宽度

LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) TextView.getLayoutParams(); //取控件textView当前的布局参数linearParams.width = 40;// 控件的宽强制设成30linearParams.height =40;// 控件的高强制设成20TextView.s...

weixin_39630855的博客 4222

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

微信小程序view动态长度_微信小程序中如何实现动态改变view标签宽度和高度

微信小程序中如何实现动态改变view标签宽度和高度,程序,宽度,标签,动态,高度微信小程序中如何实现动态改变view标签宽度和高度易采站长站,站长之家为您整理了微信小程序中如何实现动态改变view标签宽度和高度的相关内容。这篇文章主要介绍了微信小程序实现动态改变view标签宽度和高度的方法,涉及微信小程序事件响应及使用setData针对data数据动态操作相关实现技巧,需要的朋友可以参考下本文实例...

weixin_39592026的博客 1498

Android下动态获取View的高度或宽度

Android下View必须实现onMeasure,onLayout(ViewGroup实现),onDraw(View实现,ViewGroup调用子View的onDraw)三个方法,要动态获取View的高度(或宽度)就必须要理解这三个方法的调用的时间。 原创文章,欢迎转载,请保留出处。 有任何错误、疑问或者建议,欢迎指出。 我的邮箱:Maxwell_nc@163.com

成长之路 8953

微信小程序view动态长度_微信小程序实现动态改变view标签宽度和高度的方法

本文主要介绍微信小程序实现动态改变view标签宽度和高度的方法,涉及微信小程序事件响应及使用setData针对data数据动态操作相关实现技巧,希望能帮助到大家。1、效果展示2、关键代码index.wxml文件>我是view标签,我现在的宽度是{{view.Width}}px,高度是{{view.Height}}px此处设置的style="width:{{view.Width}}px;hei...

weixin_39629075的博客 1332

android 填充view,Android 在代码中控制View的填充方式和宽度 高度

转载请标明出处:http://blog..net/xx326664162/article/details/51331694 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!在java代码中加载view,如何控制view的大小和填充方式呢??LayoutParams 之控制填充方式问题:有个LinearLayout,用来动态加载别的view页面,EditText的宽度是由里面...

weixin_42458021的博客 236

微信小程序view动态长度_微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】...

本文实例讲述了微信小程序实现动态改变view标签宽度和高度的方法。分享给大家供大家参考,具体如下:1、效果展示2、关键代码index.wxml文件>我是view标签,我现在的宽度是{{view.Width}}px,高度是{{view.Height}}px此处设置的style="width:{{view.Width}}px;height:{{view.Height}}px;"可通过事件响应动态...

weixin_39995351的博客 276

动态获取View的高度

设置动态复View的高度宽度有以下两制种方法: 1. getHeight() 方法这个方法必须要在View调用了onLayout方法后才能获得,为了监听onLayout方法,可以获得ViewTree观察者上的监听器来实现,具体代码为: ViewTreeObserver viewTreeObserver = bottomMenu.getViewTreeObserver(); viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver...

Jason_996的博客 378

动态设置TextView高度和宽度

直接上代码: final LayoutParams lp = mTextView.getLayoutParams(); width += 5; lp.width = width; lp.height=20;//lp.height=LayoutParams.WRAP_CONTENT; mTextView.setLayoutParams(lp);该方法适用于其他View http://www.

WeLoveSunFlower的专栏 3万+

android 获取一个view的高度,Android获取view高度的三种方式

本文为大家分享了Android获取view高度的方法,供大家参考,具体内容如下getMeasuredHeight()与getHeight的区别实际上在当屏幕可以包裹内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大小,与屏幕无关,而getHeight的大小此时则是屏幕的大小。当超出屏幕后,getMeasuredHeigh...

weixin_36445525的博客 2450

uniapp中scroll view高度适应问题

在uniapp中scroll view 需要给固定高度,根据不同手机高度不一样,scroll view高度不相同,uniapp中不能进行dom操作,如何让scroll view适应不同手机高度,计算好高度如何给scroll view 设置高度呢 通过uni.getSystemInfoSync()获取窗口宽度和高度动态设置 scroll-view 高度 :style动态绑定height高度 打印uni.getSystemInfoSync() 这里获得的高度是物理高度px 如何转成rpx 在cumput

sslcsq的博客 3783
上一篇: Json解析之gson
下一篇: Android自定义进度条
西瓜cc
博客等级 码龄12年 29粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值