android 自定义控件viewgroup,Android自定义控件ViewGroup

1.自定义ViewGroup第一步重写OnMeasure方法;

在onMeasure方法中一般情况下我们会利用父类传给我们的参数(int widthMeasureSpec, int heightMeasureSpec)来

获取Mode和Size:

final int widthMode = MeasureSpec.getMode(widthMeasureSpec);

final int heightMode = MeasureSpec.getMode(heightMeasureSpec);

int widthSize = MeasureSpec.getSize(widthMeasureSpec);

int heightSize = MeasureSpec.getSize(heightMeasureSpec);

之后可以调用int childCount = getChildCount();

获取子元素数量

for (int i = 0; i < childCount; i++) {

View child = getChildAt(i);

LayoutParams lp = child.getLayoutParams();

int childWidthSpec = getChildMeasureSpec(widthMeasureSpec, 0, lp.width);

int childHeightSpec = getChildMeasureSpec(heightMeasureSpec, 0, lp.height);

child.measure(childWidthSpec, childHeightSpec);

}

然后父元素的widthMode 和heightMode 计算自身的尺寸

switch (widthMode) {

case MeasureSpec.EXACTLY:

相当于父布局中match_parent,那么自身尺寸就可以等于widthSize

而其他情况则需要根据自己的需求判断

}

switch (heightMode) {

高度同理

}

最后一定要调用

setMeasuredDimension(width, height);//保存自身

2.自定义ViewGroup第二步重写onLayout方法;

其中方法的四个参数boolean changed, int l, int t, int r, int b是相对父容器的相对位置

利用child.getMeasuredWidth()及child.getMeasuredHeight()获取大小就可以计算位置

最后利用child.layout(left, top, right, bottom)方法摆放控件

int childCount = getChildCount();

for (int i = 0; i < childCount; i++) {

View child = getChildAt(i)

child.getMeasuredWidth();

child.getMeasuredHeight();

child.layout(left, top, right, bottom)

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sysAK(青囊)系统运维工具集:如何实现高效自动化运维?| 龙蜥技术

简介&#xff1a;What is sysAK、典型工具介绍、开源 3 方面介绍了 sysAK 系统&#xff0c;目前 sysAK 工具集已经在龙蜥社区开源&#xff0c;并且在系统运维 SIG、跟踪诊断 SIG 一起共建&#xff0c;希望大家后期加入 SIG 一起讨论共建。 编者按&#xff1a;本文整理自「云栖…

quill鼠标悬浮 出现提示_CHERRY MC8.1鼠标评测:超前设计延续军火箱信仰

CHERRY作为机械键盘品牌拥有非常高的知名度&#xff0c;许多朋友的第一把机械键盘就是CHERRY品牌。在CHERRY产品线中&#xff0c;最具信仰的一定是军火箱MX8.0键盘。键盘本身手感颜值俱佳&#xff0c;独特的军火箱包装更是收获了大批粉丝。至于最配这把键盘的鼠标却一直让网友们…

高并发IO的底层原理

作者 | 阿辉来源 | Andy阿辉思考&#xff1a;作为程序员的我们&#xff0c;在编写软件进行文件读取&#xff0c;网络收发数据时&#xff0c;是不关心其具体的内部数据传输的。只关心把数据传输到缓冲区或及时从缓冲区读取数据。那么内部究竟是如何实现的呢&#xff0c;今天这篇…

新能源汽车太猛了,这些卡脖子技术你了解吗?

简介&#xff1a;从汽车行业的变化&#xff0c;我们即可初步看出芯片的重要性&#xff0c;那么&#xff0c;芯片对汽车行业的发展具体有哪些重要影响呢&#xff1f; 根据全球汽车咨询机构Auto Forecast Solutions统计的数据&#xff0c;截至10月10日&#xff0c;由于芯片短缺&…

android6 存储卡异常,手机SD卡无法读取时,如何在手机上修复损坏的SD卡?

吴川华南区技术负责人概要手机发生SD卡无法读取的情况时&#xff0c;无法读取的问题是由什么原因而引起的呢&#xff1f;我们又应该如何修复手机受损的SD卡呢&#xff1f;手机SD卡无法读取的常见原因及解决方法SD卡接触不良有时&#xff0c;SD卡无法读取识别&#xff0c;可能是…

龙蜥社区成立系统运维SIG,开源sysAK系统运维工具集

简介&#xff1a;系统运维SIG致力于打造一个集主机管理、配置部署、监控报警、异常诊断、安全审计等一系列功能的自动化运维平台。 OpenAnolis 龙蜥社区&#xff08;以下简称“龙蜥社区”&#xff09;正式成立系统运维&#xff08;System Operation&Maintenance, sysOM&…

奔跑吧兄弟变成机器人是哪一期_奔跑吧预告,郑恺郭麒麟回归,而我却被女嘉宾的颜值吸引了...

哈喽小伙伴们&#xff0c;近期大家都看了《奔跑吧黄河篇》吗&#xff1f;现在已经播到第二期了&#xff0c;相信大家依旧是对跑男系列节目非常感兴趣的&#xff0c;播放量非常高&#xff0c;稳稳占据TX和AQY两大视频平台的综艺播放第一名的位置&#xff0c;可见网友们真的是非常…

院士专家热议如何拥抱“东数西算”,第二届中国IDC行业Discovery大会顺利召开

4月21日&#xff0c;一场别开生面的主题为“聚光奔赴”的数据中心行业大会圆满落下帷幕。由中国通信工业协会数据中心委员会指导&#xff0c;中国IDC圈与世纪互联共同主办的“2022年第二届中国IDC行业Discovery大会”在线上召开&#xff0c;会议聚焦国家“双碳”目标、“东数西…

刺客列传鸿蒙记,苒苒流年,春鸿秋燕,来往终何益。

【zhu shi 】:ran :[ran ran ]1.cao mao cheng de yang zi 。tang yan qian 《yi sha 》:“ran ran ji fang cao 。”2.qing rou de yang zi 。xie tiao 《za yong la mei 》:“xin xie chu ran ran 。”3.qing qing piao dong de yang zi 。he zhu 《zhe gu tian 》:“xiang r…

一文理解 K8s 容器网络虚拟化

简介&#xff1a;本文需要读者熟悉 Ethernet&#xff08;以太网&#xff09;的基本原理和 Linux 系统的基本网络命令&#xff0c;以及 TCP/IP 协议族并了解传统的网络模型和协议包的流转原理。文中涉及到 Linux 内核的具体实现时&#xff0c;均以内核 v4.19.215 版本为准。 作者…

video怎么重新加载 vue_vue 事件中更改video的src成功,视频不加载

也试过改soucre&#xff0c;也是这个样子麻烦解惑&#xff0c;试了好几个小时了HTML点击的地方click"show3d(../assets/video/2.mp4)">插入视频的地方事件show3d(url) {var sourceDom $();$(".video").html();$(".video").append(sourceDom)…

应对 Job 场景,Serverless 如何帮助企业便捷上云

简介&#xff1a;函数计算作为事件驱动的全托管计算服务&#xff0c;其执行模式天生就与这类 Job 场景非常契合&#xff0c;对上述痛点进行了全方面的支持&#xff0c;助力“任务”的无服务器上云。 作者&#xff1a;冯一博 任务&#xff08;Jobs&#xff09;&#xff0c;是互…

Gartner发布新兴技术研究:深入洞悉元宇宙

供稿 | Gartner 出品 | CSDN云计算 根据Gartner预测&#xff0c;2026年全球30%的企业机构将拥有元宇宙产品和服务。 元宇宙是一个由独立但相互连接的网络所组成的持久、沉浸式数字环境&#xff0c;但目前尚未确定这些网络将使用的通信协议。元宇宙能够实现持久、去中心化、可…

android 离屏渲染 简单书,Android OpenGL ES 8.FrameBuffer离屏渲染

作用FrameBuffer Object,也称FBO&#xff0c;离屏渲染&#xff0c;可以摆脱屏幕的束缚&#xff0c;在后台做图像处理。理解FrameBuffer和Texture绑定&#xff0c;FrameBuffer犹如画板&#xff0c;而Texture犹如画纸&#xff0c;我们在上面画东西&#xff0c;画完后&#xff0c;…

双11实时物流订单实践

简介&#xff1a;随着双11的开启&#xff0c;物流业也迎来了年度大考。2021年双11期间&#xff0c;递四方作为物流仓储服务方&#xff0c;布局仓库和分拣点超40个&#xff0c;50w平米作业场地&#xff0c;单日订单峰值达千万级别&#xff0c;海量购物订单由递四方配送到家&…

阿里云徐立:面向容器和 Serverless Computing 的存储创新

简介&#xff1a;以上为大家分享了阿里云容器存储的技术创新&#xff0c;包括 DADI 镜像加速技术&#xff0c;为容器规模化启动奠定了很好的基础&#xff0c;ESSD 云盘提供极致性能&#xff0c;CNFS 容器网络文件系统提供极致的用户体验。 作者&#xff1a;徐立 云原生的创新…

云数引领下,桑达股份2021年营收427.04亿元,同比增长33.21%

4月21日&#xff0c;桑达股份发布2021年年度报告。据年报披露&#xff0c;2021年&#xff0c;桑达股份聚焦“数字与信息服务”和“产业服务”两大赛道&#xff0c;云计算与存储、数据创新、数字政府与行业数字化服务和高科技产业工程服务四大主责主业&#xff0c;全年实现营业收…

乐佰小迪智能机器人_云知声 AI 陪伴教育机器人方案亮相广州国际玩具展

近年来&#xff0c;儿童硬件市场呈现出持续爆发态势。数据显示&#xff0c;2018 年国内玩具市场零售规模约为 680亿元&#xff0c;消费需求旺盛。同时&#xff0c;在消费升级的大环境下&#xff0c;伴随新兴教育理念的崛起&#xff0c;以陪护教育机器人、儿童智能玩具为代表的新…

鸿蒙2.0beta报名,鸿蒙OS 2.0 Beta版系统在哪报名-报名方法介绍

鸿蒙OS系统一直以来深受大家的关注&#xff0c;最近全新推出了鸿蒙OS 2.0 Beta版&#xff0c;那么鸿蒙OS 2.0 Beta版在哪报名呢&#xff1f;小编为大家分享一下关于鸿蒙OS 2.0 Beta版的报名方法介绍&#xff0c;对鸿蒙OS 2.0 Beta版感兴趣的不要错过了。鸿蒙OS 2.0 Beta版系统报…

不改一行代码,轻松拥有企业级微服务治理|MSE微服务治理专业版发布

简介&#xff1a;随着业务的发展&#xff0c;微服务拆分越来越复杂&#xff0c;微服务的治理也成了一个比较令人头疼的问题。有没有更加简单且高效的方法来解决微服务治理的难题&#xff1f; 作者&#xff1a;十眠 随着业务的发展&#xff0c;微服务拆分越来越复杂&#xff0…