一起Talk Android吧(第一百二十八回:Android自定义View五)

博客继续讲述Android中自定义View的例子,提到之前介绍了自定义View的具体步骤,主要是重写View的方法。接下来将介绍如何重写这些方法,先以LinearLayout为例说明系统中View重写方法的情况,还给出了相关代码功能,即计算View坐标值等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各位看官们,大家好,上一回中咱们说的是Android中自定义View的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在前面章回中介绍了自定义View的具体步骤,这些步骤主要体现在重写View的方法:onMeasure(),onLayout()onDraw()。在接下来的章回中,我们就介绍如何重写这些方法。不过在介绍之前,我们先看看系统中的View是如何重写这些方法的,我们以常见的LinearLayout(准确来讲,它是ViewGroup)为例来说明.

我们先来看看onMeasure()方法,下面是具体的源代码,请大家参考:

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
     if (mOrientation == VERTICAL) {
         measureVertical(widthMeasureSpec, heightMeasureSpec);
     } else {
         measureHorizontal(widthMeasureSpec, heightMeasureSpec);
     }
}

代码里依据布局的水平和垂直属性分别进行了处理,具体的处理代码比较多,大家可以到/frameworks/base/core/java/android/widget/LinearLayout.java文件中查看这两个函数的源代码。源代码的主要功能就是计算出View的各个坐标值,也就是长宽等变量的数值。还有就是,它对子View也进行了计算,毕竟它是ViewGroup,里面还有其它的子View.

各位看官,关于Androd中自定义View的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值