Android自定义View初识

Android官方为我们提供了多种View控件,但是很多情况下使用这些Android提供的简单的view如button、textview等,但是很多情况下Android的SDK为我们提供的view并不能满足我们的需求,譬如说我们要自定义一个扇形的图形,翻看Android的官方文档,似乎并没有为我们提供一个扇形图的view,那此时我们应该怎们办呢??

此时我们就需要来自定义view就是通过继承官方的view来实现我们自己的view,现在肯定说的有一点绕,但是别担心,接下来就向大家展示如何自定义view。

首先我们需要创建一个普通的java类,然后继承系统的View类,Just like this~~


然后我们会看到有报错信息, 这是因为我们没有实现它的构造方法,根据提示,我们需要实现view类的构造方法,这个报错信息就会消失了。

在实现了构造方法之后,我们还要分别实现几个重要的方法,他们分别是:onMeasure()、onLayout()、onDraw()。

那么这几个方法分别有什么作用呢?

onMeasure():每次进行view的绘制时,当view的大小进行改变的时候就会执行这个方法,所以 :这个方法是专门为了对view的大小进行控制的。

onLayout():当我们对一个view进行绘制,和确定大小,这两项功能都完成之后,我们还需要对这个view的位置进行判断,也就是说,我们需要确定一个view的显示位置,举例来说,我们准备好了一个view,无论是大小还是形状都已经确定好了,但是我们无法确定他的位置,那要他还有什么用呢?所以此时,我们就需要这样一个方法,帮助我们确定这个view的显示位置。

onDraw():通过方法的名字我们就可以看出,这个方法就是对我们的view进行绘制的,所以我们的这个view具体到底长成什么样子就是由这个view来决定的,所以这个方法至关重要,我们接下来主要要讲解的就是针对于这个方法的使用,来绘制出基本的我们想要得到的图形。

在重写了onDraw()方法之后,它为我们提供了一个参数=canvas;

canvas:可以理解为一个画布,就是我们进行view绘制时候,view展示的一个地方。

在这个方法中我们还要讲解的一个类就是Paint;

paint:可以理解为一个画笔,就是view的一个绘制工具,刚刚讲我们有了画布,那有了画布就需要有一个画笔,所以paint的作用就是充当我们的这个画笔。

当我们有了画笔有了画布,就可以在画布上随心所欲的绘制各种图形就像这样:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值