iis服务器助手广告
返回顶部
首页 > 资讯 > 移动开发 >4种Android获取View宽高的方式
  • 487
分享到

4种Android获取View宽高的方式

viewAndroid 2022-06-06 09:06:07 487人浏览 薄情痞子
摘要

有时我们会有基于这样的需求,当Activity创建时,需要获取某个View的宽高,然后进行相应的操作,但是我们在onCreate,onStart中获取View的大小,获取到的值

有时我们会有基于这样的需求,当Activity创建时,需要获取某个View的宽高,然后进行相应的操作,但是我们在onCreate,onStart中获取View的大小,获取到的值都是0,只是由于View的绘制工程还未完成,和在onCreate中弹出Dialog或者PopupWindow会报一个Activity not running原理类似。

接下来就为大家介绍几种获取View宽高的方法:
第一种方式:重写Activity中的onWindowFocusChanged,当Activity获取到焦点的时候View已经绘制完成,也能获取到View的准确宽高了。同样的Dialog和PopupWindow也可以在这里弹出,需要注意的是这个方法会调用多次,当hasFocus为true时,才可进行相应的操作


@Override
  public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
      System.out.println("onWindowFocusChanged width="
          + tvTest.getWidth() + " height=" + tvTest.getHeight());
    }
  }

第二种方式:



  private void getSize1() {
    ViewTreeObserver vto = tvTest.getViewTreeObserver();
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
      @Override
      public boolean onPreDraw() {
        int height = tvTest.getMeasuredHeight();
        int width = tvTest.getMeasuredWidth();
        System.out.println("height" + height);
        System.out.println("width" + width);
        return true;
      }
    });
  }

第三种方式:


private void getSize2() {
    ViewTreeObserver viewTreeObserver = tvTest.getViewTreeObserver();
    viewTreeObserver
        .addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
          @Override
          public void onGlobalLayout() {
            tvTest.getViewTreeObserver()
                .removeGlobalOnLayoutListener(this);
            System.out.println("onGlobalLayout width="
                + tvTest.getWidth() + " height="
                + tvTest.getHeight());
          }
        });
  }

第四种方式:


private void getSize3() {
    tvTest.post(new Runnable() {
      @Override
      public void run() {
        System.out.println("postDelayed width=" + tvTest.getWidth()
            + " height=" + tvTest.getHeight());
      }
    });
  }

以上就是Android获取View宽高的4种方式,希望对大家的学习有所帮助。

您可能感兴趣的文章:Android获取屏幕或View宽度和高度的方法Android开发实现ImageView宽度顶边显示,高度保持比例的方法Android中通过view方式获取当前Activity的屏幕截图实现方法Android获取view高度的三种方式Android 动态添加view或item并获取数据的实例Android开发中获取View视图宽与高的常用方法小结android如何获取view在布局中的高度与宽度详解


--结束END--

本文标题: 4种Android获取View宽高的方式

本文链接: https://www.lsjlt.com/news/26030.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android 获得View宽高的几种方式总结
    《Android开发艺术探索》笔记:在Activity的onCreate()或者onResume()中去获得View的高度的时候不能正确获得宽度和高度信息,这是因为 View的measure过程和Activity的生命周期不是同步执行的,因...
    99+
    2023-05-31
    android view roi
  • Android源码解析onResume方法中获取不到View宽高
    目录前言问题1、为什么onCreate和onResume中获取不到view的宽高问题2、为什么View.post为什么可以获取View宽高?结论前言 有一个经典的问题,我们在Act...
    99+
    2023-02-22
    Android onResume获取不到View宽高 Android onResume
  • Android源码分析onResume方法中获取不到View宽高
    这篇文章主要介绍了Android源码分析onResume方法中获取不到View宽高的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android源码分析onResume方法中获取不到View宽高文章都会有所收获,...
    99+
    2023-07-05
  • Android 开发中获取屏幕宽高(分辨率)的几种方式
    Android 开发中获取屏幕宽高(分辨率)的几种方式 获得手机屏幕的宽高 :(方式一) 获取WindowManager有两种方式:1: WindowManager wm = this.getSyst...
    99+
    2023-09-08
    android
  • Android开发中如何获取View视图宽与高
    这篇文章将为大家详细讲解有关Android开发中如何获取View视图宽与高,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例讲述了Android开发中获取View视图宽与高的常用方法。分享给大家供大家...
    99+
    2023-05-30
    android view
  • Android 获取屏幕的多种宽高信息的示例代码
    本文主要介绍了Android 获取屏幕的多种宽高信息的示例代码,分享给大家,具体如下:包含的宽高信息如下图所示:在模拟器上获取到的数据:08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/Ma...
    99+
    2023-05-30
    android 屏幕宽度 roi
  • Go语言列表List获取元素的4种方式
    目录1、获取列表头结点2、获取列表尾结点3、获取上一个结点4、获取下一个结点Golang的列表元素的获取可以使用内置的 Front 函数获取头结点,使用 Back 函数获取尾结点,使...
    99+
    2024-04-02
  • Android获取文本的宽度和高度
    获取文本宽度 方法一:先绘制文本所在的矩形区域,再获取矩形区域的宽度 Rect rect = new Rect(); mPaint.getTextBounds(text,0,text.length(), rect); ...
    99+
    2023-10-03
    android Powered by 金山文档
  • Android实现View滑动的6种方式
    本文实例为大家分享了Android实现View滑动的具体方法,供大家参考,具体内容如下1.View的滑动简介View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动的处理。其实不管是那种滑动的方式基本思...
    99+
    2023-05-31
    android view 滑动
  • Java 获取properties的几种方式
    目录第1种:直接在spring的xml中使用第2种:在java 启动加Conifg库中或者在controller中调用第3种:不要在spring.xml中引用commonConfig...
    99+
    2024-04-02
  • Android动态调整View的宽度和高度
    Android动态调整View的宽度和高度 在Android开发中,我们经常需要根据不同的需求来动态地设置View的宽度和高度。这可以通过代码来实现,而不是在XML布局中静态地设置。 一、动态设置Vi...
    99+
    2023-10-11
    android Android
  • 获取Android签名MD5的方式
    形而上者谓之道,形而下者谓之器 我们在申请百度云/腾讯云等第三方的各种服务时,经常会遇到需要提供包名和签名MD5的情况。这里特地总结一下: 1. 获取MD5的一般方式 1.1 有签名文件(.keystore)的情况下: keytoo...
    99+
    2023-08-21
    android
  • 怎么在Android中利用Glide获取图片的宽高
    本篇文章为大家展示了怎么在Android中利用Glide获取图片的宽高,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。//获取图片显示在ImageView后的宽高   &...
    99+
    2023-05-30
    android glide
  • 前端JS获取URL参数的4种方法总结
    目录前言方法1: 字符串 split 方法方法2: 利用 URLSearchParams 方法方法3: 利用正则匹配方法方法4: 使用第三方库 qs总结:前言 对于前端来说,无论是在...
    99+
    2024-04-02
  • php获取图片的宽和高
    要获取图片的宽度和高度,你可以使用PHP中的getimagesize()函数。这个函数接受一个图片文件的路径作为参数,并返回一个包含图片宽度和高度信息的数组。 将'path/to/your/image.jpg'替换为你实际的图片路径,然后...
    99+
    2023-09-06
    php 开发语言
  • 总结4种提高编程技能的方式
    本篇内容介绍了“总结4种提高编程技能的方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 重构现有工具...
    99+
    2024-04-02
  • jquery如何获取div的宽高
    使用jquery获取div标签宽高的方法:1.新建html项目,引入jquery;2.创建div标签,设置class属性;3.使用width和height属性设置标签宽高;4.添加button按钮,绑定onclick点击事件;5.通过cla...
    99+
    2024-04-02
  • js对象合并的4种方式与数组合并的4种方式
    目录一、对象合并1、拓展运算符(...)2、Object.assign()3、递归赋值4、jquery中的extend()二、数组合并1、扩展操作符2、使用array.conca&#...
    99+
    2022-11-13
    js对象合并 js数组合并 对象与数组合并
  • js获取标签元素data-*属性值的4种方法
    目录方式一:dataset方式二: getAttribute/setAttribute/removeAttribute方法三:jQuery.attr方法四:jQuery.data前言...
    99+
    2024-04-02
  • Android崩溃日志获取方式
    在日常测试安卓的app时,经常会遇到崩溃问题,于是经常需要获取崩溃日志。 一、通过adb logcat获取 # 清除日志,日志内容很多,对于能毕现的日志,可以先清除后重新获取adb logcat -c# 然后再次运行崩溃操作,再抓取日志# ...
    99+
    2023-09-04
    android 经验分享 程序人生 测试工具
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作