00:00
好,同学们,我们继续是吧,好,最后一课了,那在我们地方里面呢,好大家来看一看。在我的地方里面呢,我们去把这个自定义开关打开,就做这么一个东西,自定义开关它是。它是什么一种自定义,自定义空间的方式呢?它是我们的制定一个类集成,用这种方式去实现的,那么我们第一种用系统空间重新组合,实现我们特定的效果,这第一种说明搞定了就三个案例,那接下来我们就用这种。这一个类继成六,然后呢,使用这里效果我们大概有这几种,好,我们接下来就来做了,这地方里面。把其他的关掉。然后右键创建一个。我。往下走,把这个改为是零四自定义开关是吧,这个包也得改一下。
01:09
小脱钩。好,就是可以什么开端开端的。点击往右走。那么在我们这个地方里面的话呢,好把它给创建出来,在构建中好把我们的布局文件这里面看好了,然有了后,我们在这个地方里面是要去制定一个内继成U务实现我们实现我们。这样的效果呀,它不光可以点,还可以滑动,是肯定用到了触摸之剑的。然后但是这两个图片,注意是我们画出来的。这两张图片呢,当然它本身也是存在的,只是我们把它给什么?
02:00
绘制的方式,把它画到里面去,看到没有,这是一张,这张明白吧,这张大一点。啊,这张要小一点啊,就刚好这个呢,把它给遮盖住,看到没有。然后我们移动就在上面,可以在上面。如果我们移动的时候是相当于这张图片在上面动态移动,可以遮住不同的地方啊,这两张图片,然后一点就把开遮住,这样就属于什么状态,关状态一点。然后把关,这周就开溜出来,看到没有。所以很多东西你弄明白,就发现我原来这么简单,这么简单是不是?是不是就这么道理对吧?哇,这么简单,好,那么接下来我们就要去选一个类。好之类呢,就买的一个button好,然后他继承什么呀,继承我们的什么对吧,然后我们一会要在布局文件里面写。
03:13
那么这个时候要一定要实现它哪个构造方法?注意,一定要这个构造方一定要写。就是如果我们在布局文件使用该。那么将会。将会用这个构造方法,实例该什么类,如果没有就崩溃,知道吧,这个类的话我跟你说同学们,我们一定要去有啊,一定要有啊,就是在布局五年用的话一定要有。
04:04
好,那同学们既然有的话,我们就可以拷贝来到这布局文件里面去,把它给写上,然后让它在副窗体中。其中把这个文本。干掉对吧?好,就这样让它放到句中。那么这个时候我们去运写的应该是啥没有啊?对不对,咱没有好,那接下来同学们我们就要开始去。绘制。我们的这个这个这两个图片了,都是通过绘制的,当然还是的点是一样,就实现这个效果。然后大家有没有讲过,前面有没有讲过一个视图。从创建到显示的主要的一些方法有没有讲过?好,第一它实际是构造方法吧,好执行这个构造方法是就把这个类,把这个视图给实例化了,好构造方法。
05:07
实例化我们的这个类之类的话呢,就把这个视图给创建出来,第。就是什么测量。测量的话,这个时候。就是对吧,然后真正去重显的时候,我们也要重新来画吧,修。啊去真正的说我们要去啊,重选这么一个方法。啊,所以这个方法啊,这个就是测量。质量,那么如果当前它是一个。
06:00
Youlo,它还有异物什么?还有异物测量我们的什么海?就是他玉古路图里面是突然装了很多孩子啊,比如我们先行布局,乡村布局,这布局里面肯定是有不同的世图吧,这四俗都是他孩子,我们还得去测量孩子。对吧。那这个时候呢,我们的地方里面孩子。对吧,孩子有建议权,就是哎,我建议这个控件。多高多宽是吧,指定的参数好注意接下来。那么有测量,接下来就有一个什么,就是布局,就是或者说叫指定位置,那么就有一个方法叫layout。
07:00
那奥特的话,其实真正我们能能呈现的就是N知道吧。啊,那么这个就是指定。我们的控件的什么位置,注意一般的不用。写这个方法只有是玉骨露骨的时候,玉骨露的时候才什么需要,而这个方法它是一个抽象方法,知道吧,你必如果你这个类似玉古路谱,你写一个类继承玉,我必须得实现它后面我可以用用到。那么如果都不时才需要一般一般的不需要需要重写,还防一般的情况不需要重写,这个方法啊,它就是指定我们空间的位置。
08:07
假如说也就是说,比如说我们的配件,我为什么不断的还给还不的页面,那这个时候呢。互动的滑,它位置发生变化,这时候这个方法它也是起作用。包括以后我们自定义控件,我们要把某个速度把摆放在哪里,那么就用到out这个方法,这个方法是抽象来是不能抽钱的,但是这个方法一掉的时候最容易掉它。对吧,好,那么有了过后我们就少不了。最后一步绘制,绘制绘制我们的师徒,好,绘制的话就是我们的首先到这个抽象方法就,然后再调我们的N就。好,那么呢,这是画布对吧。
09:02
那一般情况下,这个地方里面呢,如果出现绘制这个过程,它其实就是根据上面两个方法的一些参数,然后呢,进行什么绘制,对吧,就说你比如说你举你要在哪个位置绘制。是吧,绘制多高多宽,因为通过测量过后,我们就知道某个空空间该显示多高多宽嘛,然后多宽多过后,然后我就诶要根据它多高多宽指定哪个位置,然后就知道位置和括号,这就接接下来就绘制。对吧,那么这就是我们一个控件,一个试图从创建到显示过程中的主要注意是主要方法,那时间还有其他方法。啊,这是主要的方法,测量指定位置。
10:01
绘制,其中指定位置是在玉古龙普才有玉里面会有,就是像这样的情况下,一般不会选这个。啊,不会写我们的王大啊,只会写。质量。咋回事?啊做会做这样的事情,当然如果大家感兴趣的话呢,这里面还有一些什么呀,就是这里开关里面绘制的原理,这里面大家可以看一下这个方法。运的绘制过程,测量指定屏幕的位置是吧位置,然后一般在U中不使不使用。并且原我是空的是吧?预估该方法抽象的必须实现,因此要指定。啊,因因为要指定孩子位置,因为它里面为古罗夫可以有孩子对吧,那绘制到屏幕上就就抽象的就只由他实现。然后自定义U,一般要重写这两个方法,但是on不需要。啊,咱们这地方里面的话呢,这三个方法大家注意,基本上就由三个函数完成,这些都是什么。
11:04
都是抽象的,其中又分别包含了on,我们就三个方法,然后这个地方里面主要是这个主要用于计算式数大小,第四组的光和高啊这个。啊,宽度和长度在U中,它是发了类型需要直内部。要求之内不能修改为修方又会调用下面的函数,注意它里面会调用它。所以一般我们干事。都是在这里去干事,就在这里面去重写。OK,重写,那这里面的话呢,它这里面有过后会通过这个去保存我们测量的结果,因为它是测量嘛,保存结果用它。好,然后就是我们指定位置用于设置视图在屏幕中间位置。U中是犯类型要求指对不能修改,那么也是什么?它也是调这个方法。在view中这个函数。啊,什么都不会做,注意在狱中不会做。
12:03
提供函数,主要是玉古路谱啊,这个类型布局指示图的用的。好,接下来绘制,绘制的话用前面两个得到参数,将视图写在屏幕上,到这里的时候完成了整个视图的绘制工作,指类也不应该修改的方法,因此是内部定义了绘制基本操作。就是调这个看没有灰色背景。如果视图界面显示,这里要做一些准备工作。最主要这里。就是回执函数,他这边做什么生意呢。就是。这个view中的就是空方法。也就是说,具体的视图需要。覆盖重写这个方法来实现自己的显示,比如特殊U这方实现了绘制的文字过程,而U古普则不需要实现该函数。因为。因为作为容器没有内容,其包含了多个,就是说作为玉骨龙虎的话,它最终是钓海子的玉海子肉才会重现这个,所以我们的这个福的话啊。
13:03
这个是没有内容的,主要是他教孩子就可以了啊,因此只需要告诉孩子复制自己就可以了,也就是说下面的什么。Dispatch就就是就什么分发的去分发孩子对吧,那么下面的话,大家感觉自己看主要是这个内容好,那么这个是有了过后,我们接下来就要去做一个什么事情呢?要。把这几个按钮。把这两个按钮绘制出来。啊,绘出,那绘制出来,是不是我们先要把它给死掉画出来。是不是把它变为变为B的麦?因为我们汇制的时候变map才能绘制好,那接下来我们就去在这里面那。然后把它给创建出来。
14:00
然后在里面我就要去定义两个F,一个是。Back。是吧,是这样吧,一个bit map。好,然后这个是背景,大家看到的这个就是开和关,这个是背景。然后我们还有一个滑动的。一产爱斯曼的。Led the bitterman。好,那么我们地方里面呢,接下来就要把它给实例化,那么实例化呢,就是用到我们的bit,然后这里面它注意了,它可以从我们资源文件里面去获取吧,好,然后。就叫啊。
15:00
点胶。下的好,这两个图片我们有了吗?没有啊,好,把它复制过来,放到我们这个目录下,目录还没有吧。Hdpi。好粘贴过来,这个时候把它绘制一下。好,那这个时候是就是我们的好,刚才我们这两张图片是一个词语背景。是这个。没我看看啊。哎,这个这个还没没生成。哦。突然少了是吧,这个时间上注意R文件。啊。8.9稍微出来啊,那咋整呢?好,那没办法,等于什么,先运行一下或者build一下是可以啊好如如果不这样的话,这一会有问题对不对,好我们去把它给这个build一下好。
16:13
一起来。不然没有生成啊。这个时候大家可以看一下,但是我们就运行起来的话呢,它看到的效果上没有看没有放满一个,那接下来这方里面,这个时候发文件,发文件有了吧,好,就接下来这个地方里面就是一个什么背景就有了吧。好。然后有了之后,在这个地方里面。是的map,然后B的map。好,这个的话呢,啊,看一下这地方里面还是我们的上面这个方法呀。
17:02
好,第一个参数get我们的8.9下的这个。是吧,好,这两个图片是有了吧,有了过后注意一会我们要他去做一个事情,就是让他。点击你看这个地方里面是有一个距离啊,这个距离其实等于我们的这个大的。这个大的。减掉这一个宽度吧,是这个时候是剩下这一段呢,好,所以的话呢,我们要把它算出来,一会会用得着。好,我们就叫这个。啊,用的类型。斯莱。这个啊,马克斯最大的一个距离啊,它。等于多少呢?就等于我们的背景的宽度。
18:02
加上我们的,加上我们的宽度,减掉这个给我的宽度,这没问题吧,加上我们的。宽度好,这时候再到我们的这个距离呢。好,那这个时候有的客户同学们在我们这个地方里面呢,好,因为我们在这个地方里面要去显示。这个。这个区域,那是不是我们要去。去测量这一段。要我们上去测量得到这个这个显著空间的这这这么一块区域啊。就是我们的控件,它显示需要测量知道吧,那这个时候呢,我们还需要重写我们的测量方法,嗯,方法,那这个时候测量过后,我们地方里面要注意了,我们在这个地方里面怎么做呢。其实就是这样的,大家看好这个方法,刚才我们在这个地方里面提到过。
19:01
这个方法就是什么。测量的时候视图大小将这里最终确定,也就是ma只只对M一个。包装子类可以重建这个方法,然后实现自己的计算式数的大小方式,通过这个去保存我们的计算结果吧,那咱们是不是可以用这个方法就可以了,好,那就是我们直接用这个方法来保存我们的这样的一个值,把它看好,那么这个时候保存一下,然后保存过后是我就保存,谁是它有多宽,我就有显示多宽就可以了,好,盖上我们的宽好。这个时候get我们的怎么样啊,这样的话呢。就可以了,明白吧,好。那么有了后呢,这个我们看一下,先把它注册掉,看行不行啊,就不不去叫负类方法,这个是叫负类方法。好,那这个就是我们的一个什么测量。对吧,是图的什么测量的。作用是干嘛呀?
20:02
视图大小将在这里什么?最终确定吧。就是测量我们空间。该显示多高多宽?如果你不测量,你你只你指定一个位置,它可能会有问题,知道吧。好,那这个时候我们就要去测量过后,才能够在这个区域里面去显示。好,那接下来我们就on就了,就是测量过后,按理说我们要是on out吧,但是我跟你说这个方法一般来说啊,就是说不需要去我们去写这个方法啊,不能这个方法,因为只有玉古入土的话,我们才去想它啊好,这个时候我们就是绷,就是这个方法,这个就是什么绘制吧,绘制好,那绘制的话,这里面有一个什么,大家可以看一下这个方法是什么。空的,你可以把它注释掉。
21:00
可以删掉可以溜走都可以。好,那这个是我的地方里面的话呢,好。就要去绘制,绘制一个什么呢?绘制一个map,看到没有?为什么把它总为bit map,因为它只识别bit map。啊,你可以看一下它这里面纵观一下有很多方法你能找到。画颜色画线条是吧,但是就没有画这个资源文件有没有画也没也没有用是吧。那这时候我们就只能用什么。这个了,对不对,好会是我们的这个2F,好,这里面它就有几个了,一个是距离左边的距离,一个是距离顶部距离,还有一个是。画笔,那b map我们很简单,我们去可以绘制一下这个b map前面这个。然后这个的距离左边为零,好距离顶部为零,然后画笔。就是要定一下了,画笔的话呢,我们去把它给创建出来。
22:05
好。花瓶有那个后在地方里面,我们是一般要把它给在这个方里面,要小六出来啊。好,然后注意画笔要注意一点,就是要设置为光滑吧,好框基础大家讲个吗。这个是什么设置抗拒。锯齿是什么?就比如说这个地方里面有个圆句子,就是边缘,你看它会有一个小小的轮廓啊,这。那么如果把它光滑过后就是抗拒子,它就是光滑的。知道吧,四指抗值好,这个画笔就捋一下就可以了啊,捋一下就可以了,是不是好,那么我们现在给大家运行起来看一看,我们这个时候看是否可以显示在我们的这个模拟器上呢。
23:04
好,是不是有了。那但是有了过后把这个图片把它绘出来会非常简单的一个事情,但是问题是。我们说还要绘制一张吧,怎么绘制啊,把它改一下是不是啊,这个时候就是可以了,好再去运行起来。啊,大家看好一会的话呢,这哥们呢,你看这是关的状态吧,但是如果我们把它距离左边。大家可以看一下,这里面有。有参数就是这是变,这个是距离左边啊,这是距离顶部,那如果我们距离左边多一点。把它变成这样子,往右走多一点,多大呢?这个有多大就多大。好,这个是最左边的吧,好,这个时候这个状态应该是什么状态,这就是什么开的状态的状态,看到没有,那么我们现在要想让他一点击开关怎么做啊,是设置点击事件呢,以前我们设点件是。
24:11
是实例话,它能到OK吧,但是我能否这样,我在它内部设置点时间可以吗。内部设置点实验可以吗?就是说我这里面也没实例化它,我在内部实验点实验可以吗?当然可以呀,就是说你在内部实验,你在外面。把它实际画设点线是一样的,其实啊,那么我在地方里面呢,就设置点时间,比如说在这里。累死?累死指的是谁?就这类好,那我如果取消可以吗?把类死给去掉可以吗?也可以啊,你说你们能在这入里面嘛,好那么这个时候呢,我们就要去设置点击事件类。累死的话,我们就把当前的这个类。
25:03
让他实现什么?是让这个们实现这个接口,然后最终实现这个点击事件的,好,然后当我一点击的时候,我就动态让他去开和关吧。好,那么我们动态让它开和关,好那这个时候我们对方里面一点开关,一开和关,那这个时候是动态的,把这个值设为零和设为最大是不是就可以了,好,那这个时候我们立方里面呢,定义一个这个玻璃形,然后1O是吧是吧,默认的话呢,是默认的话一进来我看看,默认的话一进来就是我们那个是关。对不对,好,那么当这哥们一点击的时候。我就要去做这样的一个事情,就是如果这哥们对他进行一个取反,如果是开就关,关就开,是不是就可以啦,然后有了过后,我就这样子判断,如果你这个哥们是开的。
26:10
那么开的。距离左边的距离是最大呀,那么我就把一个值。我单独记一个值就是叫做题。这个之前是叫max对不对啊,这个的话呢,就是。距离左边的值。这个是距离左边最大的值,距离左边最大。距离,那最大距离其实就是我们的这一段吧,最大的是不是?那这个呢,就是不是了,但就是一会最大一会变成零对不对,动态的是吧。好,那么如果是开的时候,它就等于什么Y的马,如果是关的话呢,就把它设为多少等于多少零,这就可以了,然后接下来要重新绘制一次。
27:10
那就是说我们一会儿要动态来改这个字。对不对。一会视频一会是最大是不是。那这个地方说一下灰字啊,那接下来就怎么。Valid in。好,我看啊,这个方法会什么导致哪个方法执行啊?Q,方法执行。这方难度就执行,它就是一个什么强制绘制。绘制,那这个时候一点多绘制出成立绘制啊好大家看好同学们,我们这个时候呢,就可以实现我们的这个点击。
28:00
看到没有,简单吧,你看就可以了,但是离我们的目标还有一点距离,就是什么呢?我们你看可以滑动。这个时候你看我们可以划吗?都可以只能点对吧?好,这个知识点是我们所讲的开关的点击事件。
我来说两句