Android 自定义控件 基础概述之一

本文介绍了Android中自定义控件的基本概念与实现方法。包括控件的继承关系、构造方法的实现,以及自定义控件的绘制流程等内容。

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

来来来,来复习一下,android 传说中的自定义控件。

首先我们来看看目前非自定义控件哪些?

这里写图片描述

大概就是图片里面的控件了,android 5.0之后 材料设计风格已经是Android UI里程碑上的一个进步。但是大家觉得够用吗?显然就是不够用的,在小型公司里面各种破需求,什么IOS控件UI多美啊?按着苹果走就行了,等等破需求显然就满足不了。所以,就产生了自定义控件,你想怎么干就怎么干,想哪里上滑就上滑一切都在自定义。

源码看继承关系


那么自定义控件是怎么弄的?我们点开android自带的控件看看源码,我们来看看Button。

这里写图片描述

这里写图片描述

看继承关系,那就是说,顶层父类就是view,Button具备TextView的功能。那么我们来看TextView这个控件,TextView具备显示文本的功能,但是我需要不单只是显示文本,我还需要可以放大缩小,闪闪发光,点事促发事件的功能等等,那我就需要自己来造一个MyView控件,当然他的父类必定是View,继承View。同事,也可以直接继承Button,具备了点击促发事件功能和显示文本的功能,但是,一般来说都是继承View会比较灵活。

上代码如下:

public class MyView extends View {
    public MyView(Context context) {
        super(context);
    }

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
}

好了,这就是继承View之后要实现的构造方法,以下进行一下优化。
直接上图了:
这里写图片描述

Why这样写?其实很简单,每个构造方法可以进行打LOG看看其执行的方向。我这里就直接说了,构造方法都会走到从第一个一直走到第三个,直接在第三个创建方法来初始化一些日常的类,避免每个构造方法都写一个初始化方法。(其中不懂的同学可以复习一下java基础this和super作用关系)

自定义控件View绘制流程


1、准备工作(1、继承View或者ViewGroup 2、findById)
2、测量(onMeasure()–onSizeChanged())
3、摆放(onLayout())
4、画绘制(onDraw())

以上就是自定义控件的简述,下篇会结合些例子进行讲述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值