00:00
等什么呢?好,我们做一个小小的试验。什么是念呢?大家看看,在我们这个地方里面,我想做对这些按钮进行。这背景进行做一个点击事件。就说呢,这些背景进行做一个点击事件,就是点击它点击它点击它好,那么其实我们是对对这个这个相对布局也可以设置点击事件的。好,那么我们来做一个实验,其实肯定肯定是可以点击实验,这肯定没问题的,然后来到我们这个地方里面好设置点击实践,设我们的on,然后呢,好用它总共有几个三个对吧?二这个呢三。然后在这个里面,我们把这个词语句是再加上两个,再加上几个啊r.ID点我们的这个va。然后总共有。
01:05
三个,这是二。这是三。是吧,然后我们呢,透视一下是吧。好,那这个时候呢,就是T,然后我们就把这个呢复制过去,它被点击了。对吧。接下来这个门是二。对吧,这个我们是三。好三好,我们这个时候运行起来点击应该是有问题吗。好,大家看好,我们区别起来,这时候点击这里可以点击吧,好点击外面也可以点击,点击这里面也可以点击,对吧,那我们点击这里面也是可以的,点这里也是可以的,但是现在我要把布局改调一下,就最初我们那种状态,那也就是说把我们的,因为我们刚开始选的是先是选LEVEL1啊。
02:05
先在前面。是刚是刚系我们选的是那个一啊,那接下来是再选那个二,那也就是把这个LEVEL3放在最末尾吧。好,就是我们最初的是这样子,对不对,这个LAVA12在中间,好,这个时候我们再去运行来。好一会儿的话呢,你们觉得会出现什么样的一个情况。好,然后一起来。那假如说我点击这个地方。你们觉得响应的是谁啊,那个三。看到没有,为啥呀,是被那个给盖住了,其实大家明白了吧。啊,假如我点这个地方应该响应的是谁,还是那个山,然后点击外面呢,还是那个山,明白了吧,因为这三张图片是什么哈。
03:01
就是盖住的,就这里面,这就是其实那个三的地盘,但是内部是透明的,其实也还是属于那个三的地盘。明白吧,因为我们是三张图片盖住的,大家可以感受一下,这里面你看啊,我点。任何地方还是这个,想漂亮点里面还是点这里,还是还是它。啊,就这这个就是这点这个地方都是对不对,明白吧,点这几个都点不着,那么这时候我们得还原。好,这个是那个。那我删了是吧。这个是再反映一次。再放一次。这个的话呢,是三,这个是LOG2,这个还没出来,好这样的话呢就可以了,好大家一定要注意啊,以后遇到这种类似情况就会发现,哎呀,为什么这个哥们能看得见,但点都是有问题,就是被上面的东西给遮住了,但是上面这个东西它某一部分就透明的感觉,诶怎么还是它就出现这问题,所以你要打个土司啊出来给大家看看,这样的话就更加清楚。
04:13
对不对,看到没有是可以点了吧,之前是死活的话,就是点这你看那个一点了,点这那个二。啊啊啊哦,对对,刚好是他脚对吧,好对吧。是不是啊?然后如果角这里。上面点就就是对吧,上面就是,然后呢,这里面就是知道吧,啊,那这是角啊,点上面也就可以了,这三对不对,所以的话,它有这么一个情况,对吧,这个情况。好,那同学们在我们这个地方里面呢,这一块就是我们啊小小的一个扩展吧,啊扩展好,那就是优酷菜单的一个小的扩展。
05:03
好,那接下来我们要讲什么呢?就讲广告条效果,实现我们这样的一个效果。这样效果,这个效果用什么做的呀?配配大家用过吗?那就是第一次用过是吧?第一次用过是吧?用过是吧?好那也就说那同学们,那相当于我们是第二次学了对不对?好,那这个时候我们去把它给实的效果,这样的效果做过吗?没有做过,而且这种功能用的特别多啊好,那他用的是于配也做的,那么这个布局该怎么做呢?同学们是这么回事啊。首先这一整块。她是一个女配角。然后呢,它的外面。
06:00
啊,外面它就是说这个是UV配角,它外面套的是一个。相对布局。啊,当然最外面是一个,就是也可以是线性布局,也可以是相对布局,但是呢,在这个与配解的外面,它套的。是一个相对布局,为什么呢?因为这个地方里面。要它在底部对齐。对不对,和底部对齐啊,这里面这里面的话呢,底部对齐,然后这这个红的这部分又是什么呢。好,它是一个线性布局,看着上下结构吧。对不对,上结构,然后这里面是一个文本吧,但是这几个点是什么呢。注意这个点是动态添加,有多少页面就添加多少点,所以呢,它是一个线性布局。啊,不是用其他布局也可以,那么我们用线性布局来做。啊,因为现在布局有一个好处,就是水平方向,你添加个点就有一个点,添加个点就有个点,对不对?好,那接下来我们就来实现了。啊,时间种类功能。
07:01
好,那么我们就要去把这个创建出来,然后把布局给出来,然后再去把我们的资源加载进去。好,那么这我们地方里面呢,我们就要去选了,叫做广告调效果是吧,好把其他不相关的干掉。然后呢,创建。右键创建一个什么。Model,然后点击往下走,然后我们就叫零二叫广告。调下,然后呢,于理解意思就是用于配件做的好,那么这个时候呢,在地方里面它默认就有这个包,那还行对吧,那我们啊。我们这个时候呢,最好这样子是吧,有一点点击下一步好用查。好,那这个时候把它创建出来过后呢,好,这哥们呢,一会去抬出来。
08:02
在我们地方里面,我们去把这个。在地方里面把布局进来,这样过后我把这些内边距。都什么干掉,然后在这个地方里面,我们开始写了,在我们这个,因为外面是一个相对布局,我们就可以就这样就就可以了啊不动,然后我们把这个。给实现一下,就是这个V配减啊V配减,然后我们在地方里面呢,去啊把它给写一写,在地方里面这个呢是我们的VP解。玉佩姐是哪个包里面的,四包里面的好,然后宽填充什么,这方体高,注意高的话,这个玉配姐有一个特点就是。有时候自定义配角的话,如果你没有指定它的高。他可能就没有显示知道吧,之前有个第三方有什么问题。
09:02
啊,大家要一般来说我们要啊,指定一个高度180个1P就行了。然后这个呢,把它给。去掉。那这个ID写一下,ID怎么写呢?VP或者或者叫VP也都行,就说你命名的话,所有的就是你这个软件要征求一定规律就可以。遵循一个规律就可以知道吧,好,那这时候我们可以叫做VP是吧,就是或者直接叫VP就行,好,那这个时候呢,这个门。就有了。对吧,预览的时候其实你是看不到东西。好,这个时候把它可以。点,但是一点的话,我们可以看到它有多大这些区域。是不是,然后接下来我们在地方里面。在下面这个部分我们就要去选了,就这个部分,那么呢,它是一个线性布局。
10:02
先布局对吧,先布局,然后我们去把它给。做出来就是它是一个先进布局,就是一个呃,上下垂直结构,对吧,这里面又是里面又有个先进布局。啊线性线性布局啊,那么宽前的方体高是包裹类型,那么方向是什么方向啊,对垂着方向。然后第一个内容,注意它地方里面其实还有一个。背景是一个灰色啊,好井号,然后123456都是黑色。黑色的话呢,因为这里面没有内容,所以的话呢,没有显示啊,那假如说我们随便写一个文字,它就应该有内容了啊。包裹,然后假如说我们现在你看不,它是默认是跑到上面是有内容的,看到没有。啊内容,然后我们要想那变成灰色,要把它前面加上多少啊四四。
11:01
变大了吧,看没有。然后在这个地方里面的话呢,我们希望它在底部对齐。那么就在这里面。这个这个。在谁的底部呢?是再次给们的一个底部啊,我看看如果这样的话,ID引用。看一下是不是跟它底部对齐,看到没有这个lay out like button是吧,底部对齐,那这个文本我们写一下,写一下过后呢,我们在这个方里面的话呢,文本我们去想一下,就是现在比较火的电影是哪部啊。啊,美国对队长是吧,三好,那这个时候我们就可以看到这样的一个效果了,对吧?文字一般要把它视为白色,因为在灰色的是在灰色,白色更加凸显了。
12:01
反正就白色,白色就是123456。白色对不对,看凸显,然后这里面呢。他这面有一点,那边举五个DP。这样的话呢,它就会大一些,然后这个文字也让它有一个三个三体。当然没没看到有有点效果对吧,那文字我们是在水平方向居中的。好,这个时候好,就是我们的一个什么水平方向。好,苏可啊,怎往下。那么除了这种方式,还是可以用另外一种方式,也可以就是说假如说你不用这种方式,你把它设为什么填充。填充,填充过后呢,然后让他内部居中是不是可以呀,内部的生产内内部的水平。这也可以啊,可谓条条道路同罗马,就是你去做一个事情有多种方式,但是你要选择你最优,你觉得哪种对你而言最简单,成本最低,你用什么?
13:10
OK,两种都可以,对不对,好,那么下面这个地方里面呢,注意这个要选个ID,因为我们一会的话还会动态的去改变这个你看。每滑动的时候,这个文字文本动态改变了,所以要把它要动态设置值吧,所以ID要写。然后啊。然后这里面还有就是我们的一个。点,那在哪里做呢?就是在下面做一个新的布局,先布局是动态添加我们的点啊好,这个时候在地方里面。然后的话呢,它的方向是什么方向啊,一点的方向,水平方向。对吧,那么它是在我们的副窗体中水平居中吧,好,然后ID我们选一下。
14:05
写一下LL,然后point点的一个集合。Lo对吧,填了几个lo是lo是一个团集体的意思啊。好,那这个时候呢,我们就布局就搞定了,接下来就差实例化了。磁力化,那么这个时候比较简单对吧,好,这个是pity。好,那接下来就是我们的T等于5TV,它是我们之前写的这个接下来好,就是我们的先进布局LL,然后呢,这个这几个D就这几个件了。一个。两个三个搞定,接下来把它给实例方FBC有了吧,好,这个时候呢,FBC有了。
15:10
这个也把它给成小FBC。是。说可以了,搞定过后,接下来我们做的事情就是要把这个配给的数据给显示吧,大家回想一下,就是说我们历史用的数据要设置适配器啊,与配件一样。也一样,你看我们历史U它怎么大家可以这个回想一下,在我们地方历史U的话,我们这个历史的U的使用,那么第一步我们要在布局中定义吧,在布局文件中定义我们的历史的用。一般是在在一般是在布局文件,其实不在这些文件是不是也可以啊啊,不在布局文件也是可以知道吧,但是一般在这里,但是不管你在布局文件还是在在代码中都需要实例化,第二步就是在代码中实例化。我们历史课六。
16:13
第三。第三步就是要开始设置适配器了,设置适配之前一般先有数据,再设置适配器。但是我们可以没有数据之前也是四倍,可以吗?其实是可以的,但是你在没有数据之前就设置你的那个集合。一定存在,这个集合可以为空,但是如果为,那就可以出现什么,明白吧,就是说它可以没有数据,但是集合一是肯定一定是存在的。知道吧。还有就是那既然是在没有数据,我也设置设备器了,那假如有数据我该怎么办?
17:01
刷新一下,那四倍刷新一下是没题吗?OK,但是一般情况下我们有数据啊,再设置四倍器啊,但是如果新的数据添加进来,我就刷新一下对不对,OK。在这个里面,我们其实就应该按理说应该设置四倍,应该是先准备数据,然后接下来就是第四步。设置我们的适配器,然后适配器里面就是我们的item布局。然后绑定数据。这就可以了,基本上就这么一个步骤,那么我们的预配解也类似。也类似啊,也类似,在我们这个地方里面是已经定义为配解了,在布局门面。好,那也就是说直接把它改为。
18:03
配件,那么这个时候有配件。分解,但是区别在于我们的历史设置。玉佩解的时候,它是被代。但是我们这个用的是配减代表,是不就是它有这么一点区别,叫配减A。A。啊,他用的适配器不要。好,那我们在这方里面已经在布局文件已经定义了,对不对,在代码中也实例化了,接下来准备数据。好数据就是什么呢?就是我们一张张的。图片。这个图片是就是一米九域网,对不对,就是一米九域,所以的话呢,我们要去准备一个集合,注意它既然要设适配器,都是要用集合。
19:04
你会发现了所有的这个计算机啊,它处理一些数据都是什么集合呀。这个这个就是就是一个批量处理,是都要把它整理成有共性的数据,然后去IO去处理,这样才自动化,就像我们工厂里面生产东西也是批量批量的吧,要不然怎么才体现机器的那种自动化呀。所以我们计算机里面的思想也一样,就是我们把这数据,把它给找到共性,然后批量去处理,同样我们要把它显示出来,多张图片也要用到适配器,适配器里面就要用到几何。所以你可以站到这个理论高度,你发现生活中的例子、思想都非常相通。好,那接下来我们就把它定义一个集合list。而历史的是安全还是不是安全的啊,不安全但效率高对吧?好,那么在我们地方里面集合,我们要去把它给录出来。
20:09
然后呢,接下来要注意装载我们的图片或循环。好,那么这个数据我们呢,已经准备好了,就是这个图片本地的图片。好在我们地方里面呢,有一个叫做啊广告条,这里面有图片,你看就这张图片对吧,拔括比赛啊,啊这个抱歉啊,这些就是广告的对吧,我们叫广告效果嘛,就打广告的对吧。好,那么把它拷贝到我们的广告效果,注意配这个项目里面的哪里啊。好。好,会到我们的这个job点。Hdpi是吧,什么都西。
21:03
得了吧,Trouble。杠H这边这没问题吧,好粘贴过来。那过来过后,那这个时候资源ID我挨过去选,其实对方呢,浪费时间,那这个时候呢,我这里面提前准备好了这个ID,这代码会选吧,去选,然后这个是群数组,然后加上这个,这也会选吧,所以的话呢,我们把它拿过来直接放在上面,节约大家的一个听课时间。好,那同学们在我们这个地方里面,我最终要把这个ID把它给转换这样的一个图片集合,对不对。其实我们不转换,直接在里面去用这个ID也可以知道吧。只是我们呢,为了方便直接用就可以了,用六出来是吧。好,这个时候我们就用的是ID。这个图片。图片的一个什么长度,然后I加加对不对。
22:02
在我们这个地方里面的话,我们就要去把它一张一张图片的把给溜出来。好,这个是一个上下文吧。好,然后图片的话呢,注意我们在这个地方里面到底是设置背景呢,还是我们的src啊。因为是这样的,同学们,如果你的SRCU可能边缘,它可能不填充。因为背景呢,它是有有不一样的,假如说这个控件我们就设置一个背景,它全部填充,但是src就会出现这样的一个情况。可能是这样子是有点变了,所以我们这个时候呢,就一般了。这个是src就这点,那么背景就是全部,那我们是要要他填充完了就是的,什么背景,背景好ID这个。
23:00
你妹姐ID。然后这方里面的话呢,去取我们的I是不是,然后挨个把它添加到我们的添加。大不了集合中啊,集合中。这个里面ad。好,添加里没有,这没问题吧,这每录一张图片我就添加到里面去,对不对,那么这个时候是我们的第三步,就准备数据就搞定了。搞定了,那这个数据。这个数据其实我们是可以来自于网络的。明白吧,你网络的图片,你就可以把它什么显示在里面,是也可以啊,对不对。好,那么同学们只是说网络的数据,我们每一去请求可能在设备器里面。是不是做的事情。好,那同学们在我们这个地方里面的话呢,我们就把它添加到这里面去了,接下来就设置四位七。
24:00
适配器,这个时候我们在地方里面就V,然后A大家看一下它用的是配吧。好,那这时候呢,我们需要用的配贷,这配贷款是一个抽象类,抽象类我们需要是继承它还是实现它。啊,抽象类我们是需要继承才是实现它啊,继承它对吧,抽象类嘛,因为接口才实现出国门。是吧,好,那么这个时候。我们把它给溜出来。大家看好,看一下点F2。他我相信大家的英语的话呢,应该还行对吧,我们呢看一下他说如就说你要实现啊,这个配件代表你必须要重写下面的什么,至少要选下面的方法这四个啊。
25:01
好,那么也就是说我们现在有get,也有is view from object,是不是还差上面这两个好,那这时候呢,鼠标放在这里。或者放在上边,然后去啊都可以啊。然后在地方里面点击什么扣的。然后这里面点一个什么。Over right,这个大家讲过吧,然后这里面不是有一个什么。啊,实例画是吧,这里面你看这里面实例画是这个,这个是就这个方法啊join把这两个重写。对吧,这里面他已经告诉我们了,要必须重写这几个。但是我们现在再去看注释的话,这哥们呢,看到没有。看看啊,应该应该还有对吧,这时候你看让我们重写这几个方法,这个这个对不对。好,那么我们确实写了吧,那接下来有过后,我们在这个地方里面就是得到我们的总数,总数是谁呀。
26:03
就是这个集合的一个什么size对吧,选这个,然后在我们这个地方里面的话呢,还有。这个是得到总数都没问题吧,得到文这个图片的总数。啊,不变的总数。那么在这个地方里面的话,那要讲这个方法,我们最好先把这个给实现了。这个是什么呢?这个是相当于我们历属于的时候设置适配线的概率U方法呀,但是它不同之处是这个与配解这哥们他去加载这图片的时候是ad的方式。一会我们要把它放到哪里去啊,加上这个。这个容器里面去,这个容器本身就是我们的预配角,可以看好啊,这地方里面。
27:01
它相当于相。当于我们的GET6方法是实例化每一个视图啊。好,那么这个参数是什么呢?其实本质上是我的云配件自身。做未支撑。然后我们一会ad到它里面去,这个呢是当前实例化页面的什么位置知问题吧,就哪个哪个位置被实例化。比如说这个是第。二个位置,这是第三个,这是012是吧。好,他是从零开始吧。好,那这个时候注意了,既然是实,这时我们就要做一个事情。实例化,因为我们在之前在上面实地画了吧,所以只需要什么get是根据这个位置去去get,就相当于实例化某我们对应的某一某一个页面了,好这个是返回的是U9,然后不同之处以前我们是直接就返回了。
28:09
这个返回没问题,就这返回也可以,但是还多一步。还添加容器中。那么也就是说在我们这一方里面的话,我需要的是在这方面ad view把它添加过去,那也就是说如果没有这一句是和概率率一模一样啊。是和我们隶属于中的适配器。是一样的,如果是这样的话,直接就返回了。但是呢,他就多这么一个方法,就什么添加到我们的预配解中,他做这个。这没问题吧,好,添加到VK减。中对不对。是不是?好,那么有了后在这个地方里面要做这个把它给返回去啊。
29:00
那其实。我们可以把它把一个位置返回去。那一会我们再再说啊,就是说我们先磁力化,谁把谁还回去,这肯定是没错的。然后在这个地方里面注意了。这个方法它其实是比较。我们的刚创建这个视图和我们这个U是不是同一个视图,就是比较。我们的U。和object。是否?是否同一个实例?那么怎么比较呢?特简单。那如果if。他们相反,Object,那么这个时候object,那就那就返回一个呗。是不是称to去比较,然后这个或就称多少或十吧,就比较吧,是不是同一个实例。
30:09
那么大家看一下。这个。是我们的一个什么页面,这个参数一个页面就是我们的某一个页面,然后这个是谁呢。这个参数就是上面这个方法返回的接口。返回的结果。诶,上面这个方法是创建某个页面,诶这个返回它过后,那就和这个视图比较是否是否是一个,那么这些方法都有系统调用。他要比较一下,然后他才做相应的释放啊,做相应的处理知道吧。所以呢,要做这样的事情,好,这个方法呢,要注意它是比较和这个是不是同一个实例,如果是同一个实例,你就返回个Q5或者返回数就可以了,那既然如此,如果是to就返这个相等是就返回to啊,否则force那是一行代码可以解决吗?
31:13
一行代码就可以解决。那上面这行代码还需要吗?OK。那么就可以了。这个不变,这个呢,我有添加这个,还有这个呢。班那两个是不是同一个词点,最后这个方法就是什么。释放资源呗,好,就是我们的释放。资源。那我问大家。我们的配他一进来,因为它这里面是有好多个图片呢。可以划这么多图片,它默认它创建多少个页面呢。注意,它默认会创建两个页面。最多创建三个。就是说为什么又出现一个最多呢?这我们你看假如说我们一进来,它是从在地顶地顶个位置啊,然后当我们往右滑的时候,出出现了第三个啊,但是第一个时候还没有被撞,还没有被销毁啊,我们再往滑的时候,第四个的时候,那么第零个的时候被什么。
32:17
消费了,就是一进来他把第零个位置和第一个位置给创建了,然后往右滑是接下来第二个创建了吧,接下来。我们是有三个了吧,再往右滑,第第三个,也就是第四个,总共有四个了,对吧,第三个。的位置创建,接着第一个的这个位置对应的这个页面被什么消毁?明白了吧,如果大家不信的话,我们打日志,你会发现他执行几次。好,那所以在地方里面的话呢,我们就要把它给消费了。怎么做呢?在我们地方里面把它给释放掉是吧,那么这个是预配解吧。
33:01
好,这是我们的。与配角,然后这个是我们的要释放的位置。释放的位置,这个要释放的页面对不对,那么就是说我要把它拿到它。沐浴。因为我们因为配件里面装的肯定是因为是看得见的嘛,看见肯定是页面吧。好把这个呢。10需要把它给抢走成六啊,OK,然后我们去打一下日志,如果他执行几次就被实例化几次啊。好,我们这个时候来打一个日志好tag,然后去把它打印当前的。这个方法。啊,然后把它位置打印出来,到底是第几个页面可以创建对不对,好,然后这个地方呢,我们也要打印出来。
34:03
啊打印出来,呃,注意我打印的话,顺便把这个。位置打印出来。把他这哥们的实力。就打印出来。好,答案出来过后啊,它我们一会再再去去去搞定,那接下来再把这个。打印这个位置也打印了吧,这个。我不借把水被移除了,对不对。好,那我们可以在做之前。好,然后这个T把它给创建一下。好,这个时候T的话怎么写呢?好点class点开我们的生成。这个方法用过吗?他什么意思呢?它就是有这个好处,就是这个代码的作用,就得到这个类的名称。
35:05
知道吧,只要类的名称呢,它有一个好处,就是假如以后你这个类变了,我这个是你如果你这个方法不变,这点不变是报错啊,你肯定要变,你变过后它就永远是跟着这个类走。它有这个好处,当然代码也会长一些,对不对?好,我们去运行起来,看一下日志,同学们看他执行几次。运起来。在我们的。这个模拟器上。一起来。好,那么我们看看。几次?执行几次啊,大家记得啊,这个是这几个ID看到没有是唯一标识啊好,我们把这个日志。复制一下,现在是默认创建几个啊同学们。大家看啊,这个这这个这个大家啊,我们,嗯,截张图。
36:00
是吧?保存一下是是法海,用法海这张图好,然后的话呢,把它给。保存。好。送给他,然后呢,我们一会儿粘贴下,好大家看好在地方里面我要再往右滑,这个时候他会最多会创建多少个。哎,这是我们的吧,好,我往右滑。创建一个了吧,是第几零一二十三第二个了,好,现在有三个,那是销毁执行了吗?没有好接下来我再往右。滑,大家看好,再往右划,第三个被创建了吧,是,但是第零个优先被销毁吧,好,那么第零个大家看一下B51F。B5EF苏地灵哥被吓吓毁了,搞定。是不是第三个未创建,现在明白了吧,先消消先先把它消干掉,然后再创建,是不是,所以的话预配也,为什么它预配也它只显示三个呢?是因为预配也是通常是一整个页面呢,它所占内存比较多,不像历属于一属于可能一个屏幕显示好几条。
37:13
他肯定显示七八条,肯定是九条十条,再看它的高度对不对。听明白了吧,同学们,这就是我们了解的云姐,那下午的话我们继续再把生养功能讲完,早上课就到地方休息。
我来说两句