00:00
下午的课我们开始。那么在上课之前,我们先简单回顾一下我们上午所讲的内容,上午我们讲了一些关于自定义控件的一些概念。啊,就是什么是零控件是吧。用系统的控件重新组合实现我们特定效果,也是我们自定控件一种嘛,对吧。第二种,制一个类,继承我们的谬,实现特定效果,制定一个类,继承谬骨入谱,实现我们特定效果,那也就是说实现制定分有三种方式对吧?那么也就是说我为什么要实现制定空间呢?第一是过节空间。在不同的手机。要UI统一,这个时候我们可以制定空间,我们整捆软件,比如说类似于QQ这样的效果,我们要在不同的手机要呈现这样的内容。这时候我们对。这个软件的整体风格需要自定义对吧?还有当我们去用某个控件的时候,发现的功能没有这么多,或者功能过多,我们需要制定空间,比如说历史没用,我们做下拉刷新。
01:13
系统自带的内存用是没有下刷新的。这个时候我们需要自定义空间,也就类继承系统自带的术来扩展的功能。这是需要,还有我们左右滑动的时候,运配点是可以滑动的,后面我们左转链架构的时候用到运配点,要把它的滑动去掉。这个时候也需要这就把多余的功能给去掉,这时候也需要这个文件。然后我们还讲了早上的第一个案例,就是我们的优酷菜单,对吧,好这个菜单的话呢,我们让他实现我们这样的一个。滑动就是一个旋转这么一个动画,那也就是说首先从实现这个界面的话。
02:02
那么我们是怎么做的呢?就是用系统的这些image view,然后相对布局,然后就把它拼成这样的一个效果啊,但这里面反映出就是我们编程的时候一种思想,就是说实现这样的效果,可能我们作为一个程序员,很直观的想法就是对每一个。也没有用,进行一些旋转对吧。也可以实现,但是这样的话成本比较高,所以这个时候我们就把这个事情交给美工,让他把这每一张图片把它旋转好。这样的话就成本很低了吧,对不对?所以当我们在做一些事情的时候,有多种实现方式,我们可能采用的是成本最低的这种方式。好,那么有了过后在我们这个地方里面,当我们之前把这个隐藏后一点,是之前还可以。还可以把它点出来呀,他点还生效,后来我们的解决办法有两种,第一种就是把它变为米罗普,然后把孩子变,就是把里面的孩子变出来,把每一个孩子点进,把它都设为一,这样的话就不可以点了,对不对?那除此之外我们还有什么办法?
03:15
属性动画对吧,之前之所以隐藏了还能点,是因为我们这个外面这个。三级菜单里面里面的孩子。的属性并并没有改变,这个时候呢。他就扔了,还可以点对吧,当我们旋转过后的时候。这旋的时候点这个按钮,它仍然还可以点,那是因为它属性没有移过去是吧,属性没有移过去,后来我们就用属性弄坏就可以把这个问题解决了。是吧?好,那就是我们上午所讲的内容,那么我们上午讲到哪些呢?讲到把我们的这个。广告条是吧,广告条,广告条呢,我们已经把它的功能实现成这样的一个效果了,可以把它运营起来给大家看看。
04:10
好,已经可以滑动了,对吧,那滑动过后,接下来我们要做点什么呢?大家看一下,从这样一看的话,你根本看不出这里面到底有多少张图片吧,那这个时候我们要告诉我们的这个用户说这里面有多少张图片,是有多少个点呐。那么之前我们的下面是做了一个线性布局呀,我们只要动态的添加我们的点数就可以了,好,接下来我们就来继续做了。来到我们这地方里面,好,我们来看看这里面不是有一个或循环吗?循环一次是不是有一张图片呢?这个时候我们叫添加点对吧,注意这个点的话,大家可以看一下,这个点是有一个红色,有一个灰色,那么它肯定就是用到的就是一个选择器。
05:04
那选择器啊,有很多种,就比如说选择器我们对应的属性有按下。是吧,有默认,还有check和默认对吧,还有in和默认,那我们到底用什么呢?那我们这个时候用in啊,Check是radio radio group的时候我们用是吧,按如果是按下去,那用的是八层的时候用,那我们现在呢,根本没有按下,也没有选中是吧,这是我们用in v two的时候,就把它高亮显示就红色就可以了。好,那接下来在我们地方里面呢,我们去啊创建我们的红点啊,添加我们的这个点是吧。好,这个点的话呢,我们也用图片来做啊破特,然后录一个录一个我们的图片上下文,好,然后有了过后注意了,那么我们添加点的话,对于选择器的话,一般我们是放在背景里面吧。
06:07
好,那接下来还仍然要去设置它的这个背景,好,这是我们的这个背景,这个backgroundlo对吧,点job好,那么名称叫什么呢?我们就叫in的一个对吧,好,那我把它给创建出来好在地方里面好算出来,那么接下来我们就以为准吧,对吧,好,Item好,就是我们的默认为false,好那这个时候呢,使用的一个job,然后这里面。这么一个属性,好,那大家要注意了,我们默认的时候是什么颜色呀,是灰色,这灰色其实我们有两种做法,一种是可以用一用一张图片,让美工提前把我们切好这一张灰色的图片。
07:01
和一张红色图片对不对,那么用图片是必须占我们的空间呢,其实我们可以自己定一个系谱,系谱大家用过吧,然后系谱的话定一个椭圆,然后呢,把它变成圆形,然后把它灰色一张,红色一张会搞定了,好这个时候我们去定义一下,叫做我们的po的一个nor。Normal是不是正常啊,好,那我把它给创建出来,创建出来。在这个地方里面穿出来过后呢,这个时候我定义的啊,就不是select是什么系,然后形状是什么,是形状是椭圆了,那椭圆过后把它高和宽度设置为一样,这样的话是不是就变成一个正方形了。而就就变成一个圆圆了是吧?好,那这块里面它就有一个size好宽,这个是比如说我们这是八个DP啊这个啊高八个DP对吧?好这样的一个值,那有了过后,接下来我们再去有选它的一个颜色,颜色的话这是这是一个固定颜色吧,好然后我们就选一下默认的是灰色吧,井号123456,这是黑色,黑色在前面加四四是就变成是变成灰了,看到没有,它是可以预览出来的,对吧。
08:36
好,那这个呢,就是我们的灰色,那么灰色只是我们其中一种,接下来还有红色啊好把它给这个复制下来,然后这里面为度从上一行复到下一行,大家知道快捷键吗?按CTRL键,然后按我们的这个向下那个箭头啊,就是那个啊方向键知道吧,啊,假如说你按住它,你看就可以不断的复制对不对啊,但是然后按CTRLD就把它删除了。
09:05
好,这个时候呢,就是这个呢,就是我们要写下了啊,就是点的一个什么啊啊高亮对吧,高亮的话我们就是啊,我们叫什么名字呢,我们可以叫啊。我看啊叫对吧啊,就可以随便叫个名字啊,好,那么把它给什么创建出来啊,什么地方里面好这个时候改为什么系。那么当然我们也可以直接把这个们复制过来,改个颜色就可以了,好把它给粘掉过来,这样的话时间会快一些,好这时候我们改为红色,然后红色的话就是FF,然后呢,啊,我们要。真正的红对吧,红色代表激情,代表革命对吧。好,那这个时候呢,咱们就有了这个颜色,把其他关闭掉,好这个时候就有了,对不对,接下来是把它给添加到哪里去啊。
10:01
添加到我们之前准备那个线性布局吧,还有印象吧,好线性布局好这个线性布局是不是,那ADD什么好AD对吧?好,那这个时候我们去运行起来,看看我们共同的劳动成果啊,看怎么样。好,那么我们去运行起来看看了。好,那这个时候呢,大家看一下。你看这这点就有了吧,但是默认是都是红的呀,好,所以的话呢,我们还得去调,还有次数它太近了,好那么接下来分别来解决。第一个就是我们高亮显示第第零个,就是第零个的时候,默认是红色啊,其他都可以是什么,其他都是这个默认的对吧?所以呢,把它这个设置我们的这个in第零个,为什么two,其他都为什么这个。
11:05
为多少,那这个就是什么显示什么颜色啊红色,那其他的都设置为什么显示灰色,灰色好这样子。那么有了后,我们一呢,就可以看到这里面这个是红色,其那个灰色,但是我们间距再去设置一下,好,那这个时候怎么做呢?对吧?好我们set我们这个间距好放到下面来,然于我们去set我们的这个lay out啊。好,那么我们去把它给填一下,好把它给这个创建出来,好,那创建来过后,同学们,我们要把这个点放到现象布局里面去吧,所以导包应该导谁呀啊导现象布局啊,大家注意这一点,然后我们在地方里面呢,去把它给创建出来。
12:02
然后宽我们就是八个DP,高啊也是八个DP,然后在这个地方里面。好,我们把它剪切到这,就说如果我们在这个地方里面注意了。在这个地方里面是要设置,我们要设置一定的间距啊。但是第零个注意左边我们要距离吗?不要啊,所以在我们这个地方里面,就是只是不等于零的情况下,我都要把它设置为left。距离左边有多少呢?八个像素对吧,注意这里面在代码呢,写的是都是像素啊。好,那同学们在我们这个地方里面,我们去运行起来的话呢,就可看到我们这样的一个效果了,好把它立起来。好在我们这地方里面呢,好大家看一下是不是看到没有看到我们这样的一个效果了。
13:03
那么有,然后我们在这个地方里面滑动的过程中,这个点没有变,这个标题是没有变的,也就是我们接下来要解决的问题,你看我们现在滑动是有变化的。对吧,有变化的,那现在大家想一想,我们现在假如滑动这个,怎么可以让这些点有变化呢。我滑动是怎么让它变化呢?怎么让它有变化呢?其实特简单,就是当我往右滑,滑到这个页面的时候,我让它设为inner为two,这个把它还原变成什么是不就可以了?理论很简单。那么理论很简单,那也就是说我们要做的事情,第一要把这个之前高亮显示的位置给记录下来吧,因为我在地方是来回捣鼓啊,所记录上一次高亮的呀,这是一个。
14:02
那么嘞,我们就来做一做,要记录一下这个位置,好那么我们去写一个啊变量,然后呢,在这里面去把它给定出来,好in的类型,上一次就是我们这个高亮显示的点的位置,它勒好默认呢是零对吧?好就是这个是我们这个啊上一次高亮显示的位置。啊,暂时显示位置,那也就是说我们怎么去当页面滑动的时候去改变这样的点呢,其实我们配解呀。他已为我们准备好了,它有一个方法叫监听页面的改变,就当我们滑动到下个页面的时候呢,它会有一个对应的什么回调。就像我们点击是这样,我们对这某一个控件的点击升息接听后,当一点它就回调过来,同样当我们这页面一滑动,它发生变化的时候,它也回掉给我,并且把位置告诉咱。
15:05
这样的话,是不是咱们就可以根据这个位置,把当前这个位置的点高亮显示,把上一次的点把它设置为默认就可以了。好,那接下来我在这个地方就设置我们的这个啊,VP解页面的改变好。也就是。这个设置监听。我们的V配件这个页面的一个什么改变好大家好,这也有一个方法叫。那么以前在第版本叫set,我们的on配接清洁是页面改变的一个监听呢,页面改变的一个监听器,那么这个时候呢,在在我们的啊新版过后,这是一个什么ADD了对不对?好,那有了后在地方里面它要存一个什么样的一个接口呢。
16:00
所以它是一个什么,我们配清洁历的这个接口,我们要去把那个什么实现出来啊,好实现出来把它复制一下,好,那么我们在这个地方里面去把它给实现一下。好在这里面把它给定义出来。那有那个后在我们这个地方里面的话呢。好把这个。好。我看一下啊。这个把它给。把他。实现一下,好把我们的包导进来,然后把它对应的这个方法,好把这三个方法。给实现一下,好,那同学们这三个方法大家以前。见过吗?好,我们在这里面来看一看了,首先这个方法,这个方法其实对于这个里面的方法的话,大家看一下名字知道是什么意思了,你看当我们页面滚动了的ED是不是我们过去时态啊,学英语的时候,这个时候我们是就是某个页面被就是滚动了的时候回调这个方法啊,当我们当我们的页面滚动或者滑动是吧?滑滚动了的时候回调这个方法第一个参数就当前滚动的页面,就是说你当前滑动是第几个页面,像你看我现在在滑,滑滑这是第几个页面是吧?它回调来这是当前页面的位置。
17:45
然后这个是我在这里面滑动了页面的百分之多少,假如说我现在滑滑动页面百分之多少。50%,这个时候它会回掉这个值来,就0.5。而且我们后面。一个项目中会用到这个参数,就是我们要计算。
18:03
下面有个点红点,让它红点在中间移动。就有个红点在移动,知道吧,要去计算的距离,就要用到这个参数,大家先记一下啊,到时候呢用得着,这里面就是我们滑动页面的百分比,就滑动了多少,这个呢是我们在屏幕上滑动了多少假动,我滑动了多少,滑动了多少个像素,滑动了多少像素,你看这个距离就是我们滑动的像素,好就是在我们屏幕上滑动的像素就是像素,像素的话是不是就是我们的移动距离啊。对不对,在比如上,因为因为我在我们手机屏幕上呈现出来的都是以像素为单位啊,但是我们选布局的时候是DP吧,但最终呈现出来显示都是一像素啊。OK,在我们这一方里面有了这个参数,接下来我们再看一下这个是什么呢?这个是当我们的页面被选中了。
19:00
当某个页面选中选。选中啊的时候回掉好,那当某个页面会选中了,那这是某个页面就是意思,就是什么意思呢?当我们地方里面点一放好,这个页面是刚才被选中了,好这个时候呢,就是我们A选中。选中页面个什么位置问题吧,好这个呢,就是我们当我们在滑动的过程中,你看它会有一个什么。滑动,然后一拖拽,就是我在拖拽的过程中,然后一放,然后它有滑,就是有惯性滚动,然后它静止,是总共有一个拖拽,一个滑动,还有一个静止吧,三种状态,那就是这三种状态的切换,就回到这个方法啊,就是我们状态。
20:11
状态的变化。是吧,当我们状态变化,当我们页面滚动状态,当页面滚动状态变化的状态。变化和时候回调的方法,那这个时候它就有一个静止。Stall。滚。那么滚动或者说我们叫滑动吧,滑动。
21:00
好,那么从滑动。到镜子。或者从静止到拖拽。拖拽什么叫拖拽呢?你看现在这个们是静止对吧,我拖拽这个过程叫拖拽对吧,一放一回弹,这个时候这个是叫滚动,然后一停止就静止,三种状态OK好,那么其实这些这些方法里面呢,后面这个用得着,这个用得着,甚至这个也用得着,但是在一个案例中啊,没有用到这么多,我们先来用什么呢?先用来这个。随便选中。当某一个页面被选中的时候,这个被选中我就把它高亮,其他是变成默认了,所以我们这个时候就把上一个把上一个。
22:03
高亮啊设置为默认,默认是就是灰色,然后当前。设置为多少啊。高亮,那就是我们的红红色吧,然后有了过后,其实我们在电脑里面应该还要做一个事情,设置文本。设置对应页面的文本信息,大家可以看一下。在这个地方里面,你看我一点。是不是凝聚于我,你我放飞梦想?是不是这样说?这文本是动态的变化?好,那么这个地方里面的话,还不要忘了,就是这是上一个位位置的,就是变成什么对不对,就是本次执行过后,然后呢,要复制本次这个是变为上次啊。好,那接下来我们一步来做了,设置对应的文本的信息,很简单,就是在我们这个地方里面TV标题,那设置我们的text text是不是就是我们在这个地方里面这个特殊文本啊,然后要去取消息,去哪里取啊。
23:12
是这里面取啊,刚好这个里面12345数值长度为五,上面的图片是也刚好五张啊,12345是不是挨个对应好,所以呢,直接在这取就可以了。好,然后这里面。这个是吧,OK,取出来,然后接下来把上一个高亮的设置为默认,那这个时候我们在这得到。这个上一个点的位置啊,现在是当年高亮,接下来要是得到它上一个。好,然后这个呢,又变为上一个,是不是这时候我们就要去LL这个是不是我们的一个先进布局啊,Get上我们的修。根据什么得到呢?位置好,根据上一个位置。然后去得到过后,然后设置它印的为多少或就变成灰色了,然后再把当前的当前的是哪个位置是这个好把它设置为多少度就搞定了,但是一进来的时候,我们默认要设置高文本应该是谁啊。
24:23
零吧,好,当然它默认是也是零的。时间的话呢,可以好,那接下来这个地方里面呢,这个状态改变,我们呢,就把它给这个。录一下就可以了,对不对,主要是监听我配件页面的一个改变啊的一个监听,然后呢,在这边做了这个事情,对吧,大家对这个代码要明白,好,我们去运行起来,给大家看看我们的劳动成果了。好,大家看好。好,这个时候你看上回古巴和争霸赛对吧,好,你看凝聚有我方为梦想好可以了吧,对应了文字也就对应了,好,那这个时候呢,咱们这个知识点添加,就是在我们这个地方里面啊添加。
25:14
就是啊啊这个添加指示点就搞定了,还有根据页面改变设置文本也搞定了好把。
我来说两句