00:00
同学们,今天我们进入自定义控件的第二天,那么在进入第二天内容之前,我们先回顾一下我们昨天这个上一次所讲内容,上一次讲一些概念的东西,这个我相信大家都能够理解了,什么是认定控件是吧?实现三种方式,一种是用系统控件重新组合,实现我们特定效果,第二种。制定一个类继承入,然后实现特定效果,制定一个类继承玉骨肉卜实实现特定的效果。因为U和玉古洛普他们最大的区别在于玉古龙普可以操作孩子U他不能。但是U和U啊,但是U和又有一个区别,U肉的父类是U。但是里面又可以包含。是不是古骨的父类是U,但是U古入骨的孩子又可以是U?
01:00
是不是?然后有了过后,这就是他们的一个关系,那么我们通过优酷菜单就发现他们这个两者的区别就是六超的孩子得到孩子是吧,然后。我们。他们因为他们有这么一个特点过后呢,就是。当我们旋转动画的时候。旋转动画的时候,这个时候它确实已经是我们看不到了,对吧,但是。当我们隐藏的时候,我们点数之前可以显示出来啊,可以点击,那是因为我们的这些视图动画。是试图动画移过去的时候,它的属性并并没有什么。并没有移过去,并移过去,那这个时候一点的时候,他的那属性还在,也就是他点击事件是属属于属于它的属性之一一点,他还可以点击,那后来我们就用了属性动画就解决问题。
02:01
这是解决方办法一,又属于动画。还用了玉和玉古鲁卜之间的区别,它的特点去解决,就是我把它变为预古辘。注意,我变为与古乐谱是本身它就是与古洛谱啊,之前那三个连环是不就是相对布局啊,相对布局的负类就属于活萝卜,所以我把它。从U把它还原成U古鲁普,他本身就是U古鲁是不是?然后月古鲁普过后,我们就可以得到它里面的孩子,然后把挨个孩子辨认出来,把他的in的设为book可点。那这样我们点击某一条,它就就就就。点击某一条,这个时候呢,当它隐藏的时候,我们把它写成某为for,不可以点,是真的就不可以点了,所以我们两种。解决他的办法。好,然后呢,我们上一次还讲了我们的这个优酷菜单广告条,那在广告条这配那也就是用的最多的。
03:09
做的最多的,那么容易出现问题,或者早上听大家反馈。有不解的地方是在哪些地方呢?给看一下,对于广告条大家都在这个地方里面,不解的有这个红点的这个点,这个地方。点首先在我们这个地方里面,有的同学这个八是什么不是很清楚,好给大家看一下点F2,那么这个时候你看同学们它有好多构的方法,其实大家一弹出来就知道了,我们现在用的这个八和八,你们觉得这个应该是用的是哪个构造,第二个那就是宽和高。对不对,但是这里面设置的单位应该是什么。在代码中设置的都是像素,像素它有一个问题,就是在所有的。
04:08
手机上都是八个像素,都是八个像素好吗。就是它的大屏手机上也是八个像素,就在大屏上八像素它就很小,在小屏手机上,在很小的屏幕上,八个像素就显得很大。所以通常我们要建议他进行什么转换,好,那么我今天已经带手机来了,给他。看一看这个这个我看手机。手机放包里面了,到时候我我下午的时候给他看看,后面还会有这样的一个案例,就是后面还会有,知道吧,也是关于红点的,还会有。只是的话,这个如果我们转换。这样的话呢,在所有的手机上就适配了,当然我们可以啊,没有真机的话,也可以这样去做个演示给大家,这样的话呢,大家更就更明白了,我把这个平密度很大的呢,把它给这个。
05:17
好,我们把这个拎起来。现在的感受要让我们再去做处理。好,我们呢,去把它运起来。然后你会发现。我们在这样的手机上。我们先运行在这个手机上。一起来。好,大家看一下这个点的话,你看刚好这么大是吧,然后我再运行在大屏幕上,注意啊,可能大家感觉屏幕好像也差不多,老师,但是我跟你说这哥们你看屏幕多大。
06:05
这个这个是比较小的啊,是比较小的,这个是啊,三零乘480的,三零乘480的,这个呢,是1080这么大的,它的密度你看是这么大。啊,这个的话呢,它是叉叉的密度比,那这个呢,是啊,这个是给大家看一下。我们的这个是多少的呀?是M的,它是30480的吧,看到没有,我们启动的是这个模拟器。然后我们再运行在这个上。给大家看看。你起来。那我们同样是主要是看点啊,运起来。好,你会发现这点看到没有,是变成小不点了,很小很小了,为什么呀。是因为。这个它的密度特别高,什么叫密度比呢?就是在一英寸上。
07:03
它显示的像素点不一样,如果是在这样的屏幕上,它一英寸上它显示160个像素。那么它的这个密度比也是一。是一,那么这个它比呢,它可能就是之前我们说过它是三,也就是说在一英寸上这样的一个区域内,它显示的可能是180个像素,那么也就是说我们这个是。啊,当然我现在就不用手机也可以了,就是出现这种情况,那我们想办法就也希望跟这个差不多大,怎么做嘞。把它变成我们的,把它当成是什么改变?
08:05
八八。那么嘞,TX当成是DP,因为DP呀,它通常我们是在布局文件去选这个DP吧,注意啊,我想我讲的DP和DP是一个单位啊。DP和DP是一个单位吧,然后我们平时在布局文件里面写的DP,它其实最终都是转化为像素吧。它在不同的屏幕上不同的像素,这样在密度比较高的,它转的值比较大。密度比比低的这种比较小。我是在我们的下拉框这里面有一个工具类啊,把它拷贝过来。
09:13
过来,然后我们地方里面呢,我们去把它复制一下。然后在我们这个里面呢,我们把它给写一下,就是特类型啊VDTH,然后把它转换下用的是DP转换像素,是不是就把它当成DP嘛。第一个是上下文,第二个是我们的八。好,我们把来直观透啊好然这个这个V。等于多少呢?好,等于这个弹出来,好,那么也就说都用这个单位了。
10:00
好,都用这个。转换的。这个也用。好,那同学们大家看一下,这个时候我如果去运行我们的这个模椅上。这个模拟的话呢,它的你们觉得应该是多少啊,应该和八相差不大,或者等于八,因为它密度比是多少。11。啊,他不,所以你看到的是一点变化都没有。因为这个为什么我们用模拟器刚好是这样呢?因为我就是不管选什么的按钮,它比例都是1:1,所以的话不会变大,也不会缩小,所以这样这样模拟器来上课,但是如果我们用这个模拟器的话,注意了。它就同样的八是不是变得很小了,所以这个时候我们再去运行,那么呢,把这个做四配过后就解决问题了,好运来。所以以后只要在代码中用到的长度、宽度。
11:03
等等,全部要用这个工具转换一下可以了,知道吧,好,那么我们来给大家看一下。哦,还没运行起来。好,我们去运行起来。点击运行这个。还没有一起来,这哥们不行了吗?我再开启一下啊。好,我们去把这哥们呢开起来给大家看看了。好,那在开起来的过程中呢,顺便给大家说一下,有同学说哎,老师啊,你这个地方里面导的是线性布局,诶是什么意思啊,注意了,因为我们这个地方里面是添加点这这部分呢。那添加点把这个点,这个点是一个图片呢,那么放到哪里呢?放到这个线性布局里面,注意这个线性布局里面其实就是我们的这一块,它其实是是它外面是就是一个先进布局啊,所以我们导的这个参数,你把这个点放到哪个布局里面,所以就导谁的布局,因为这个点是属于谁的孩子啊。
12:24
相当于这个不局的孩子吧。明白了吧?然后还有同学不明白,就是老师啊,那我们这个地方里面这个这个地方里面我们这个选择设置为。啊,这个设,那么我这里面设置八,怎么还要设置意的话,你可以任意设置,但是呢,我们这个地方是空大。这个信你把它当做是图片的大小。你看啊,一个控件显示图片。我们的图片大小这个可以任意一设吧,只是我故意要设置为八而已,那假如说我这样呢,我把它设为20图片为八,这个时候会有不同的情况啊给看好。
13:09
我们先把这个运行起来,再再做这个试验。好。大家看好是是不是差不多了,同学们变成多少了24了,因为这样的屏幕呢,它密度特别的大。密度也特别大,所以的话呢,大家以后只要在代码中设的单位都要做这样。啊,都要做这个转换就可以了。好,那接下来我们再做一个例外实验,这里面的选择器对应的系不是都是八呀,好,那假如我们对这个。把它设置为20很大,但是那个那个背景图片,你可以把它理解为背景图片,输入八啊好,我们再去运行,在我们再来模拟器上,会出现什么样的效果呢。
14:00
好。图这个点变大了对吧,点变大了对吧?点变大了是不是,但是我们之前明明我们明明的那个那个这个这个还是幸福啊,为什么这个也变大了,因为它是什么。设置过后它是背景嘛,背景是整个填充的,但是如果我们src呢。我们不用背景src呢。说这个背景的受损呢,这个时候你们觉得它还会是什么,还会有填充吗?好,就不肯定,就可能可能就会不一样了,好,我们一起起来大家看一下。啊,其实还是一样,对吧,但是如果我们又设的背景。啊,假如我们。啊,这个的话呢,这个因为这个系谱啊,它系谱的话,它可以这个缩放啊,这个到时候我们可以用另外一个来做实验,就是用具体的图片。
15:00
啊,那这大家就是一般情况下的话,我们一般是用背景啊,一般用背景。背景OK,好,那同学们在我们地方里面呢,大家这个要明白啊,一般我们这个不要这么大八就行了啊,到时候后面我们还会有这样的一个思念。好,那么关于这些参数大家都明白了吧,还有一个问题就是这个这。就是我们。这个是选中的某个页面的位置,那么有的同学会发现,细心的同学会发现,哎,老师啊,这个position好像比其他的地方的position要大个一呀。为什么大一呢,大家可以看一下,在我们这个地方里面,我们呢。假如说我们滑到这个页面的时候,它其实把下个页面16化了,所以16化的时候,它自然而然会什么比当前这个大一个什么打个一。明白吧,就是这个。这个它会比其他地方大个一。
16:01
啊,就是这个同样是取出出来,它会打个一好,大家我们可以把它给这个啊打印出来啊,比如说在这个上面我们都都打印这个真实的。啊啊,都打这个真实的。好这个,然后我们再打选中的。选中的。比如说现在选中的某个页面啊,我把它给。嗯。我把它给复制刚才这一行代码。呃,把它。打印的这个。复制过来,然后来到这里。选择的这个地方,同样是打这个门,打这个门对吧,这时候呢,选中。好,你会发现。你会发现什么呢?会发现这个选中的页面这个值它会比那个要小个一啊,为什么呢?因为我们默认的时候,它会把下个页面给实例画出来嘛,是不是。
17:08
好,这个时候我们运起来。好,然后这里面是选择顶个页面,然后这里面加,但是这个地方里面我看看啊。然后我们去把它给。看一下现在是这个页面了。好,这个地方里面是零,但是select。实例化的。啊,选择的页面为三。零一。哦,他只有两次了啊看看。就他关键是各种事件。这是某个页面选中的时候。大家也可以看一下这个一直行的时候,你看大家看一下这个是一,这个是多少零,那这个是二,这个是多少,一看到没有是不是啊好,因为它默认往下就是默认会多实例化下一个页面嘛。
18:04
啊,什么意思呢?就是画一个图给大家解释一下。这是一个手机屏幕。然后呢,当当你显示的这部图片。那么这个时候这个页面是也被实例化了,当我们显示这个页面的时候,这个实例化,所以。它这个16化的时候。这图片实例画的时候,它就会执行我们的这个,所以它会比我们选择的要要大个一知道吧,这个这个分明白了吧,明白了是吧,好,那同学们这是我们上一次啊的内容,还有什么呢。看下。上次我们还讲了这个好,还有一些同学容易出现的问题,这个地方就在我们下拉框这里面,下拉框这里面的话呢。我下框子里面问题不多啊,这里自定开关。自定义开关这里面呢,有的同学对这一块不是很明白。
19:00
就说这个触摸时间,这里好注意,这个方法有同学忘记写了,就会导致一个问题,就是什么呢?就导致一个问题,就这个方法,它执行的目的是干嘛呢?它执行的目的是要因为我们实验传递是从。传给孩子,孩子再回传吧,那如果没有调这个方法,就不会回传了。你看啊,我们现在先运行起来给大家看看,我们点我们自定义开关按钮运起来。最近开个按钮给他看一下。拎起来,我们现在点击这个是正常的。拖也可以是吧,但我把它给注射掉好,这个时候它就会有问题了。好,那我们去把它立起来。好,你看点击事件承包。
20:01
点击是频重要滑动,滑动可以,但点击事件失效了,为什么呢?因为我们在这个地方里面。他。不回传了,不回传过后我们的点击实验呢就失效了。因为你看啊,这个事件的传递的过程中,哎,显示先是触摸事件有,但触摸事件我们已经把那个返回Q了吧,Q就消费了,但是如果你没有掉户内的话。这个时候我们呢,就不会有回传,不会回传的话呢,这个时候我们的这个啊,点击事件,它就没有机会执行了。知道吧,后面我们会有一个案例啊,废物案例就是把这个,呃,就是一个艾体,一个父类一个子类,然后呢。去去这么传递,然后呢,今天会讲到啊,这个到时候我们再再讲,大家以后要注意就这个代码。
21:00
不能忘记它的作用就是这个可以回传啊,就调的方法好了,同学们,这是我们上一次要上一次所讲的内容,然后遗留些问题。那么今天我们要讲什么呢?讲这些?再看一下。今天我们会讲我们的这个。会讲。智力属性。啊,整理属性。那讲完过后呢,这个制定属性呢,比较简单,就是在布局文件里面,我们定一个属性,然后实现我们这样的一个效果。就是在布局文件定义一个文字,然后一个数字,还有一个一个图片,然后我们把它读取出来,然后。把它给绘制出来。但是呢,这个就是就是以前我们在这个地方里面都是用系统的。
22:00
比如说。这些。是不是都是系统的安卓对应的这些属性都是安卓定义的,到时候我们连这个东西都自己定义这个属性,这个是属性也自己定义,然后把它给解析出来,再绘制出来,那这样的自定义啊,而且以后大家去看一下项目的话,用得着啊,这是一个知识点。还有我们今天还会讲这么一个。就是。我们的这个一个叫做防御配件。好实现这样的一个滑动,看见没有这个滑动,那么这个是于配角的效果吧。我们全部自定义。做出来全部做出来啊,做这个功能啊,这个时候呢,我们可以不断的。滑动,不能滑动。而且可以点上面有个滑动,这个全是制定出来的,它用到的呢是我们的。这个玉古路普这种方式实现防御飞解功能。然后我还会讲水波纹。
23:02
啊,把这个一点的时候,让它有个水波纹。好,水波纹的话呢,点这点这去弹出这么一个效果,这种呢,采用的是制一个类型的U这两种方式啊,用用用的是这种方式制定一个类,就是实现我们的。这的一个效果。好,那同学们呢,这是我们这个啊,上一次和今天要讲的内容啊,就讲这些属性水波纹以及我们防御飞检啊,这里面防御鞋挺多功能的啊,它可以不断撑开。是吧,嗯。知识点是不是挺多的啊。就说。然后讲完过后呢,那我们下一次将会讲这个车滑呀,再会讲这个快速索引啊,然后再会讲这个啊滑呀等等这些知识点啊。好,那么这一次我们要讲的。
24:00
啊,就先讲这个啊好,我们把这个视频呢保存。
我来说两句