在Android项目开发中,为了更加好的去进行适配,某些时候就需要用到动态获取A控件的宽高,将A控件宽高的值动态设置给B控件,例如我在xml文件中将TextView和ImageView的宽高都设置为wrap_content,接下来将动态获取TextView的宽高,然后将宽高值设置给IaageView

<ImageViewandroid:id="@+id/iv_is_read"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_read"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="4dp"android:text="我是个测试文本"android:textColor="@color/grayNine"android:textSize="12sp" />

在java代码中

//声明一个boolean,因为addOnGlobalLayoutListener会重复执行,控制它启动后只执行一次
private boolean isCompletedDraw = false;   //获取TextVie控件的高度,然后设置给ImageView
tvRead.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {if (!isCompletedDraw){isCompletedDraw = true;// h就是TextView的高度,h就是TextView的宽度int h = tvRead.getMeasuredHeight();int w = tvRead.getMeasureWidth();//为ImageView设置宽高LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) ivIsRead.getLayoutParams();params.width = w;params.height = h;ivIsRead.setLayoutParams(params);ivIsRead.setImageResource(R.drawable.shape_is_read);}}
});

转自:Android 动态获取控件的宽高,并动态设置控件宽高

Android 动态获取控件的宽高,并动态设置控件宽高相关推荐

  1. Echarts3通过ajax动态获取数据,30秒定时图表数据,设置图表线条颜色和粗细

    Echarts3通过ajax动态获取数据,30秒定时图表数据,设置图表线条颜色和粗细 代码块 <!DOCTYPE html> <head><meta charset=&q ...

  2. android设置屏幕高度和宽度设置,Android手机的屏幕宽高度和代码设置控件的宽高度...

    1.Android手机的屏幕宽高度 WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); int w ...

  3. android网络动态获取权限,基于JetPack实现的权限动态获取

    最近在学习如何使用Jetpack以及kotlin,相较于以往使用的onActivityResult,androidx-activity 1.2.0-alpha02及Fragment 1.3.0-alp ...

  4. html中四栏之间距离怎么调成,等宽两栏怎么设置(等宽两栏格式怎么设置)

    在大家使用word的分栏排版功能时,可以根据自己的需要在文档中建立不同数量或不同版式的分栏.不过什么是分栏呢?其实就是纸张的页面从原本的一栏分成多栏.接下来我就会教大家的. 1.创建分栏 1.设置等宽 ...

  5. java 动态获取类实例化_Java:使用反射动态实例化类

    使用反射动态实例化类,可以在运行时根据参数实例化不同的类,比如使用简单的工厂模式. Factory类: public class Factory { public static Component g ...

  6. android编程获取网络和wifi状态及调用网络设置界面,Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 - Android平台开发技术 - 博客园...

    获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityMan ...

  7. vue 动态获取的图片路径不显示_Vue 动态图片加载路径问题和解决方法

    最近在做一个树形结构的组件,使用了Vue和element UI中el-tree组件.因为树中每个节点都需要显示一个图标图片,并且需要根据后台传入的数据类型动态地显示,所以图片的路径需要动态地加载.下面 ...

  8. python tkinter控件_Python3 tkinter基础 Label pack 设置控件在窗体中的位置

    ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdo ...

  9. word如何设置长宽高_word怎样设置图片长宽

    Word2007提供了丰富的图片编辑功能,方便用户在不借助Photoshop等图片处理工具的情况下,直接在Word文档中对图片进行编辑.修改,甚至还可以为图片添加倒映.三维效果等.下面就来学习如何在W ...

  10. WPF中通过控件Margin属性设置控件位置

    WPF中通过控件Margin属性设置控件位置 一.Margin属性简介 二.Margin在cs文件中定义 三.Margin设置控件位置 四.参考文档 一.Margin属性简介 在使用WPF进行页面设计 ...

最新文章

  1. “巨杉数据库”获1000万美元B轮融资,DCM领投
  2. 土人系列AS入门教程--实战篇
  3. C# 学习笔记(7) 进程
  4. 使用Schematics启用SAP Spartacus的SSR模式
  5. ssh服务端口转发详解
  6. java做的web系统 m1 读卡器 结合_IE浏览器接入IC卡读写器实现M1卡的读写功能
  7. adb shell 直接修改Settigns中设置项
  8. Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码
  9. Julia : 如何一行实现99乘法表?
  10. iNavFlight之MSP DJI协议分析
  11. 全民健身下的体育消费,是怎么升级的?
  12. linux微软雅黑字体库_Ubuntu 安装 Wine 4.4 并设置微软雅黑字体解决中文乱码
  13. 数学建模-线性规划模型基本原理与编程实现
  14. 爱也可以量化?用4个公式表征爱情
  15. 设计模式回顾——模板模式(C++)
  16. 2017cad光标大小怎么调_AutoCAD 2010如何调整光标的大小?调整光标大小的方法
  17. 如果host1要传送文件到服务器,南京晓庄学院思科网络网上作业
  18. c语言a a- a*a,详解a、a、*a、**a
  19. 项目中中文大写金额的工具类
  20. torch DQN算法

热门文章

  1. 数据分析可视化系列(四)B站关键词搜索结果
  2. 你有没有一个御用冷笑话 说来听听~
  3. 淘宝客软件-登录阿里妈妈
  4. u盘启动计算机的几种方式,U盘各种启动模式方法介绍 六种U盘启动模式
  5. php代码加nofollow,给WordPress友情链接添加Nofollow方法详解
  6. 技术研究:DOOM3网络模型的演化与网络架构
  7. 成本最低的Elance提现方式 — Moneybookers
  8. 易思ESPCMS企业建站管理系统 P8.21120101 稳定版
  9. bugku-加密-题解
  10. 胡嘉伟 :实时计算在提升播放体验的应用实践