00:00
先呢,我们还是把昨天的课程给大家复习一下。昨天呢,我们主要是讲了图形图像处理相关的。啊,我们来看一下,首先看第一个关于它的一个基本的一个理解。这个理解呢,首先第一个我们要知道的一件事情就是它。就手机上任何显示的东西啊,都是什么,怎么出来的。画出来的对吧?啊,这件事是大家应该是知道的,因为我们前面已经讲过了。这个事情好了,下面就是关于它的一些API了啊,这API呢,我们应该相对来说是比较好容易做的。前面两个接着用两个对吧,前面呢,我们叫它图片对象,但是这个job不一定是图片对不对,它可能代表的是什么。
01:08
是不是图形呢?啊,下面一个就是converse。画布paint。画笔。啊,就是画布是一个可绘制区域。也就是说我们的那个我们看的东西是不是都画到画布身上呢。还有一个画东西肯定需要什么。话题,那我问大家那些绘制的功能的方法定义在哪个对象身上呢?是画布身上呢啊,画布上面有很多方法可以用这个。Max,我就不把它记下来了。啊,不是我们的重点,好,我把这个重点呢,给大家保留下来。啊。
02:00
下面呢是关于图片的操作。操作分为第一个保存和读取图片。第二个自定义图形she。啊,第三个多状态的图形图片select。还有一个九拍图片。这几个应该来说用的是都是比较多的啊,项目里面必用的一些技术。啊,保存和读取图片这个比较简单,大家基本上其实都玩过了。就它里面对应一些方法,如果我要去读取图片,用哪个类。是不是factory啊,那我要去保存图片呢。是不是对象它就有cover就1COMPRISE功能,对吧,一个压缩的一个功能。
03:02
嗯。好,下面一个就是自定义图形。叫shape啊,这个自定义图形呢,我们主要是它里面呢,有很多需要我们去定义一个。文件,所以呢,C他在我们看来是不是一个图片呢。啊,它是一个在哪个文件夹下面呢。是不是在文件夹下面吧。它比较麻烦的就是这里面有很多的子标签。里面呢,有不少的属性,而且这里面很多时候有可能啊,这里面每一个子标签呢,都有可能会用到。是需要大家重点去看一下的。就是说你不用把它备住,但是你看到这个就应该能够,哎,这个有点小啊,把它整大一点,本来它就比较小。
04:07
这里面注释已经写的很详细了,大家看注释了去看一下。这一个系一般怎么引用呢?通过什么属性来引用?如果就写一个ship的话,是background引用啊,但是我们一般单独使用它的经历的不多。并不会特别多啊,基本上都会跟SELECT1起用。但是那只跟SHE1起用吗?不一定,它其实有两种可能性,对吧啊。来第一种呢,是select加,我们刚才说了she是吧,啊she好了,还有一种select加什么job。
05:07
对吧,就是select加图片,嗯,这两种呢,都很有可能会用到啊,用的几率是极高的啊。好,我们来说一下。啪。写的时候我们一般怎么写?啊,里面是不是有一款select标签跟标签对吧?好里面呢,是不是有I什么呀,一般我们会至少会一般会定两个。对吧,一般会定两个好了item来,下面接着item怎么样去跟合作了。它里面又可以写什么,把这个去了吧。这样的吧,嗯,而且在这个地方,如果假设我有两个item。
06:04
那就是有两个是否对吧,好,这个时候他们俩是不是应该对应不同的状态呀,尤其是这个第一个,我们经常会写什么state price等于什么,也就是按下去的时候要显示的一个图形图片,对吧。这是按下去的时候啊。好,下面呢,这个是正常情况下面。只是正常机子没有按下,你没有操作时。
07:01
呃,没有操作是好跟大家说一下啊,当前我们是不是写的是按下去的时候啊。但是不是所谓的都是说一定要说按下去。啊,有这样一种。有的呢,是大家看的啊。大家有见过很多应用,它有这样一个,下面有一个table项,有一个呃。里面呢,有几个选项。有见过这种吗?有吧,那它呢,有每个项呢,都有两种状态。就是选中和未选中的时候就正常状态,下面是一个对吧,我点击一下以后,它是不是变成了另外一种状态呀。那个他用什么做了,跟大家说一下。用那个radio group radio button。Radio有一个什么特点?
08:01
他们首先得说他们是单选的对不对啊,Button是单选的,这样就他自己可以控制那个,呃,只能只有一个被选中吧,还一个。怎么样去指定。不同状态其实就两种状态,不没有选中和什么选中,那这里面选中了和不选中,我怎么样来控制它显示不同的图片呢?就是进select。非常简单。睡吧。啊,那个时候就不叫什么state。大家说叫什么?State checked选中不checked吗?对吧,就是勾选的意思。啊。大家要有这个概念啊好。这是说我们的那个select。啊加C,还有一种呢,是select加job,这也是经常有用的,是用于做多状态的。
09:01
图片按钮。啊,经常会用到,在这里面不会用she了。那它怎么样去引用图片呢?在这个item里面,它有一个属性叫job啊,这个图片它就指向什么。是不是按一下那张图片呢?按下需要显示的图片对吧?好,下面的那个是不是也应该有一个桌呀。知道了吧。嗯。就是这样的一个意思,嗯。其实用起来还是比较轻松的,说实话啊,你就这样指定一下,它就帮你自动去选择,就还是挺爽的。啊。把这一个大家一定要去好好的整一下啊,下面一个是九派图片,这个也是必然会用到的。
10:09
好,九拍图片呢,哎,说到这个事,我想起上上一下个班啊,上个班前面就有班级有同学就去,去了公司就让他去做九拍图片。那不轻松的很嘛,对不对。啊,你一天能做多少个啊。一个很大的眼睛。十个啊,十个的立方差不多啊。好。就拉拉扯扯吧,不就好了吗?好。九拍图片呢,它分为两个,首先你要去理解九拍图片。一个是他的对他的一个理解啊,再一个呢,就制作。
11:01
可以吗?来理解是什么呢?你要知道九拍图片它为什么能够,它的作用是什么呀,对吧,它跟一般图片有什么区别啊,再一个它的基本原理是什么。就如何,它是如何来实现不失真的啊,这是大家需要去知道的。啊,其实就在这。好,我们把这个呢,给它复制过来。啊,还我可以把这一个呢,也给大家复制一下这个图,这一个结构图就在说明。他。的一个特点。如果面试的时候有问到这样的问题,你就画一个图给他啊,基本上就应该差不多啊。你别画了,他看不懂是吧。
12:00
你,你要画,一边画一边说,你要直接画出来,他说不定还真不懂。因为说实话啊,在公司里面干活,他不是追求什么原因的。就追求效果。出来了,拉倒过去了,干下一个。就有的时候也必须,那那有的时候就必须这样,你你那个你有十个功能要做,你好不容易做出一个功能,你是不是要去研究怎么实现,怎么做的呀,那不是,那你要去研究了那九个功能怎么办。对吧。而是说什么,你把功能做完了,下面你可以去好好的去看一下里面的背后的原理是什么,对吧?啊可以深入的研究一下,你开始做的时候,那肯定是要先尽量的先把效果做出来。先也不用想这个哪个效率高,想到100码赶紧做。啊,如果是时间特别充足,那我可以去想一下,诶,这个效率高还是这个效率高对吧,我可以比较一下,那时间不充足的时候,我就赶紧啊,只要想到一个哈,就。
13:06
把它用上去,如果效果出来了,那我就不再想了。啊,就是这样的,那你公司里面最终要领是在里干活的。不是让你去做研究的。背后你可以做研究啊。这是这样一个是啊。下面一个就是关于它的一个制作,这个制作倒是非常简单啊,我们主要是分为两个部分去去说。啊,哪两个部分,首先我们用的是哪个工具啊。啊,大家看啊,使用SDK中的哪个工具就有一个有一个文件叫做。9h.BAT文件对吧,利用它吧。
14:06
好,那有人可能就问了老师,到时候我把这个名字忘了怎么办?不需要你记住这个名,完全记住这个名字,你就说SD卡SDK里面有这样一个工具就得了,对不对。啊,到时候他说是什么名字不会问你的,说实话要问你的话,你也别去了。好啦。下面一步就是将图片分为九个派。将PNG图片分成嗯,九个。派只派什么意思啊,碎片啊,理解这个东西挺有用的啊,那怎么让它分成九个碎片呢?拖拉动什么呀。拉动上面的两根线对吧,两根线和什么左边的两根线。
15:12
是不是就可以把它们分成九个派对吧,也就是说这个这一个在这一个在这一个。是不是就分成了九个部分对吧,跟大家说啊,这个九拍图片一般是作为背景来使用的。那你想他可能是一个是一个像这样,譬如说举个例子啊。我不知道有没有人去整过咔咔,画一个整一个他。也整整这个整这个部分,来来来来去做做九拍图片有意义吗。没意义,你整个它那有什么呀,那个背景图片一般都是说白了就是一个基本上是一个单色的,偏向于一个单色对吧。嗯。虽然说不是纯单色,但基本上是个单色,因为它主体部分肯定是一种颜色。
16:02
对不对。那有人可能在说,呃,既然是单色,为什么我不用背景颜色呢?那里面它是有边的吧。它是不是那个我们的就拍图片是不是形成有一个有边框的效果,而且它还有一定的形状吧,对不对,你没看到我们上一次的是不是还有一个尖呢。你想想看,你你你要你要不用图片去处理,你要用用一个颜色来处理,那不好处理的。因为我们的视图是不是就是正常的是一个矩形啊。对吧,啊,你要不用这种图片背景的话,就不好形成一个让你看起来比较漂亮的一种样子。就是这样一个事,大家需要去知道。好,来,我们继续说。下面第二步做什么?
17:02
指定什么东西。是不是内容区域啊,可显示内容的区域。那可显示利用的区域怎么操作啊,其实就是也是拉动四根线,拉到哪四根线呢。啊,拉入右边的。嗯,下面和右边的对吧。好,我问大家一下。如果我不做这个事是一个什么问题啊,默认啊,这个地方就要说一个事了,默认只有哦,一号区域,一号的区域。才是内容区域对吧?啊才能显示内容这个啊跟大家说只有一号区域,就是一号产生的区域才能显示内容,那这个一号区域一定很大吗。
18:06
不一定。对吧,因为可能那个九拍本来就不小,对不对啊,本来就不小,你尤其是以昨天我们那个pop window菜单为例,它是不是就高度并就本来就很高啊。所以说跟高度上面根本就没有变化,那没有变化,而我们指定的是不是中间的一个像素的一个点呢。那你得想啊,它能显示出来东西吗?不冷啊。对不对。所以说我们要去扩大那个显示区域。啊,一般会指定的更高一点啊,更宽一点。是这样的一个事啊。啊。用九拍图片,还有一个特别有用的一个效果。就是那个有可能问你啊,就是什么呢?用九拍图片,它有什么样的好处,它最大,它有一个好处的一个概念。
19:11
好处肯定首先第一个是它放大不失帧,对吧,这是它的一个最重要的一个好处,好。放大不失帧,嗯,还有一个好处。我给大家写一下,嗯,解使AK更小。看看这个搭知不知道啊?你想嘛。那个我做九拍图片,我是不是可以做一个比较小的图片呢。但虽然说它比较小,但显示的时候它是可以显示的很大的吧。
20:00
那如果你不用九拍图片,你是不是得做一个很大的图片。那样就可以不用失真了吗?啊,我做一个很大的图片,那也可以,但是。那个文件是不是更大了呀。所以我和我的酒拍图片就不一样了,我既可以不失真,又可以做到很小。对不对,那此时我就能使你的APK更小啊。人家说这个效果明显吗?挺明显的,你就拍图片用的越多,那这个效果就越明显,你想想看啊,一个图片它占用的大小大小。是不是可以相当于很多的你的类啊。啊,譬如说你十个甚至几十个类。才对应一个,我一个,比如说我一个九拍图片只有10K是吧,你要不用九拍图片,你可能啊100K。你想想看,中间就结成了什么?90K,那90K的话。你得写,你你得写多少个文件。
21:02
你想那文本文件是不是就可以有很多了呀,啊,就这样的一个意思啊。啊。大家需要去知道这样一个事啊,下面继续往下看。叫自定义图形。啊,执行是我们自定义view啊。可以这么理解,在这个里面呢,我们要想来。首先第一个我们去写制定view的时候,要写这个项目必须重写哪个方法。只有重写啊。哎,重写。啊,按做方法才能显示自己的图形,对吧,才能。好,这是这一个下面啊,还说一个我们一般用什么东西去画了。
22:07
这里面涉及到几个对象对吧。来啊,使用哪两个对象,一个是paint,还有一个很最重要的。是不是covers啊?啊,去会议室。绘制自己的啊图形。啊同学,尤其以这个convers它的方法最多,我们用到了昨天的它的哪些功能。啊,用S点做做什么呀。哦,最先是不是做了一个咖了呀,就画了一个颜色对不对啊,还有呢,是画一个图形,怎么画的呀。那不是他画的对吧啊。
23:01
Job对象他一个方法叫做画画到谁身上去了,是不是看到看上,哎,对啊,下面。还有,我要画一个文本。Convers draw什么text?好,我问大家,我们现在就要想啊,有哪些参数?首先我是要画一个文本呐,好还有什么,还有坐标对吧?啊float啊float假设X这里面的坐标是哪个坐标呢?我们这个地方假设我画了一个A是吧。是不是左下角的那个坐标啊,啊跟大家已经强调过了,就它的坐标。啊,还有一个什么。是画笔啊,它需要有一支画笔才行啊呃,这个里面这个里面写一下color了吧。
24:05
这个比较简单。这样我们就能绘制我们自己的哟,现在我们还是画了一些形状,还有别的形状。啊,到时候我们还可以去画别的啊,别着急啊,以后慢慢来。好,最后呢,我们后面我们做了一个练习。我们的练习呢,主要是去显示一个。Pop window菜单。这个在项目中很有可能会用到。那在这里面我们来说一下。写东西。啊,说我们用到哪些技术啊,看一下第一个啊,刚才说过了使用托跑window。嗯,显示是不是菜单呢,实际上它也是菜单里有提示,我们以前学过哪几种菜单呢。
25:03
找a menu。还有什么context menu3级菜单是吧,那系统提供的啊那两种菜单,那破window也是作为菜单的一种形式。对吧?啊,使用window选菜单啊。还有什么?在这里面大家看啊。我们在这里面呢,显示泡温拆呢,是不是要指定视图啊,指定一个布局。这个布局里面呢,有几个要说的,涉及到两个东西,一个是九派背景图片吧。一个是。Select加she做的一个多状态的背景吧,嗯,好。这个地方啊,我跟大家说一个事,这里面是一个大家到时候可以跟人交流的一个。
26:00
一个东西,就是说大家去面试的时候,很有可能问这样一个问题。你在工作中碰到过什么问题?或者你做这个项目碰到过什么问题?这是最最让人受不了的一个问题。嗯,因为大家没有真正的自己做开发做的少,对吧,可能平常大家也问的问题,遇到问题你你心里可能就在想空时算不算对吧,你无论去写那些跟别人交流一些特别低级的问题对不对啊,你肯定会交流一些啊觉得啊有点难度的问题对不对。啊,有点或者说他们碰到过的。对吧。哎,而你是知道的。那这个问题呢,大家要先要设计好,要想好。想好了就等他问啊,一问就启动啊,就是这样的啊,你你要不你你想在临场发挥那是不可能的,对不对,这种东西是必须得准备好的。
27:01
嗯,包括他后面要会有项目实战的过程,那项目实战里面你肯定会碰到各种各样的问题。啊,包括这个难题,你都要把它记录下来,记录下来以后呢,到时候好说。你到时候一什么问题都没有。那一听就不是真正做过了。对吧,真正做的同学,他他多多少少他肯定能说出一些自己碰到的一个难题,可能会比较简单,也可能比较难,对吧,啊,也有可能简单的。但你一上去一懵一问就懵了。最怕的这种。你甚至可以说一些简单的都可以。但是你千万别蒙了,一蒙了他就感觉你这人培训的吧。这一个是大家可以去说的一个东西,就是我们不碰到过,他开始不能显示吗。还记得吧,就是使用九拍。图片。啊,作为背景。
28:00
这个是大家可以去说,就是说你你可以你可以你可以自己设计一下是吧?啊。剩下什么呢,就是。嗯,开始啊有的,嗯,可以说有些有些九拍图片呢,能显示数据的时候显示的不完整。对吧,啊,项目小组呢,就会去找,为什么有的是完整,有的是好的,那有些地方呢,又不完整,就一部分不显示,有的开始以为是布局的问题,对吧。嗯,改了一下,但是呢,好像啊,也不是特改的不是特别好啊,最后找到找找到了,就是我们的那个九拍图片呢,做的不是特别好。啊,但是你不能说不是你是你做的,应该说是另外一个同事做的。对吧,呃,但是呢,这个问题是你发现的。这个时候就在体现你在项目小组里面。的位置的地位。对吧,就是什么你你不要说你很你你光说哎呀我在项目小组很牛逼。
29:02
那这个其实没有大的冲击力,你要无形之中给告诉他,你是项目小组里面比较牛的。对吧,比较核心的成员。啊,这是这是就是说无形之中为你让你让他去相信你的一个一个办法。啊有这其实一种思想,就是大家可以说啊,开始最先的时候啊,你比较差或者有点差,比较差对吧,但现在呢,不一样。就是你要说以前做这个功能的时候开始做的一般对吧,还是怎么怎么着啊,后面又怎么着。就是让他看到你的一个成长变化的一个过程。啊,你你也是从一点一点从最先的菜鸟啊啊从最先不太会对吧,甚至可以说啊,我开始不会九开图片,说实话,因为以前没用过吗。对不对,后来我去网上查了查,去网上找了找,找了很多资料。
30:05
终于把它搞懂了是吧。而且把这个问题给解决了。嗯,这就是一个你,可有些人可能觉得我不能,我总不能说我特别菜吧,那是说你以前特别菜,你知道吧。并不是说你现在特别菜。我还记得上前面有一个班,就是有有两期了啊,有一个同学去面试的时候。啊呃,那个练习了,问他这么一个问题。你觉得你加技术怎么样?嗯。那大家会怎么说,或者说你觉得你你这里面加技术哪个比较精通啊。你怎么说?啊,什么都精通,你都很精通的,我都。啊,用的都很精通,那他就问你了啊,你问的什么说一个。
31:01
或者说他拿出来有几个重要的,比如说反射相关的,多线程相关的。你要说你精通,那你基本上就快挂了,对吧。那个游客们说的,我觉得说的太牛了。嗯嗯,他他是一种特别谦虚的说法,就是说什么呢啊,我做安卓程序员呢,才做了两年,虽然说我平常呢,也认真的一直在学架技术啊,去看什么,在网上看一些相关的一些博客,包括什么,呃,它里面的多线程啊,版设呀啊什么一些相关的一些知识。啊,但是呢。由于我时间短,我不敢说,对任何东西我都不敢说精通。因为我觉得学一个知识,它有很多的,还有更深的一个发展空间,我还才可以学的更好,更深入。
32:00
那装逼的那个那个格调,那格调真的装的特别好,我觉得那个那次说了以后,我就觉得你肯定成功了,真是这样,你能你能发现他说了这句话以后,那。那个那个那个那个面上人就觉得特别高兴。非常非常高兴。啊,就最后一要了啊,要他了应该是14倍。那哥们也确实学的不错,但是他别人就是很谦虚,但他的谦虚啊,你没发现他其实在说他差吗?不是你没看到,开始前队都是说,哎,我觉得时间不长,时间时间不长对吧,但是我再怎么着怎么着对不对,平常就再怎么着。啊,我只是说我不敢去说我很精通对不对。啊啊,没个话不能说了啊,是吧,就这这样一种,你要给人这样一种感觉,你交流的时候是有一定的技巧的。
33:07
大家下去以后呢,可以好好的思考一下,你该怎么去跟说你们的一些特点啊。啊,使用这里面呢,使用select加啊she啊,实现多状态背景啊,而且我们这里面的select里面有几个item呀。就一个对吧,我们只是指定了暗下去的时候是一个什么样的背景颜色对吧。啊,主要是就是这三个,大家需要注意一下。啊,后面我们。讲到了下面三个东西。首先呢,第一个呢,是。
34:03
嗯,这个context来把它拖到这边来啊。把他们缩起来。主要它首先大家要要对它呢,有一个基本的一个理解啊,我们说context这个它是一个相当于是一个关于呃环境全局信息的一个抽象类啊,这个呢,说实话对咱来说理解的理解这句话没什么太大帮助,主要说它用来干嘛。对吧。它我们用它能做什么事情?这是非常关键的,对吧。给这一个。大家看我们可以把它总结一下啊。哎,我们一般用它做什么,什么时候用了它或者说。什么时候用了它?有几个看的,我写一下操作应用组件。
35:04
我不知道这个能不能操作应用组件指的什么?启动一个activity,启动一个service,发一个广播。这些都是吧,包括注册一个广播器。这都是了吧?好,这是这是一种情况。还有一种情况。创建视图对象。需要吧。嗯,创建四五对象啊。好,这两个是用的最多的情况啊。包括我们也不一定完全是创建,有可能譬如说我们显示个透视需不需要。是不是需要啊啊,其实只要是操作数数对象基本上都需要它。譬如说我们加载一个布局是不是啊。
36:02
是不是也需要啊,啊也需要它它。下面还有一个。这我们经常用它来干嘛啦?获取应用的一些全局的信息。啊,这里面提供了很多。一些电的方法。获取吧,它既然是去获取了,那肯定是一个get方法啊。主要是这三个方面。好。下面它本身是个抽象的吧。那它的实线是谁呢?首先第一个我们学到的是activity。还有。Service啊,后面我们学了一个。叫对吧,啊这一个呢,这一个啊,它是一个相当于是一个前台界面可以。
37:07
啊,他是不是跟前台界面相关的,而这一个我们叫它什么呢?是不是后台服务啊。好,下面这一个呢。啊,应用我们翻译过来叫应用对吧,那它用来干嘛呢。它是一个什么。就是个什么数据共享对象对吧,全局的啊数据啊,共享的容器对吧?嗯,这三个大家去需要去知道啊。啊,后面呢,我们我们在用啊,用那个contact的时候有两种可能用的,一个是使用activity.this这种情况吧。
38:05
啊,将它作为那个context。啊,这里面就是说两种context。两种对象,哪两种呢?一个是它,还一个是什么。Get application context。我跟大家说用它,基本上我们都在用它比较居多一些,那什么时候用它了。跟大家说一下,Dialogue必须用它。对吧,再一个。视图相关的用它比较好。为什么用它比较好呢?因为它那个字体颜色。如果你用application,它是个什么灰色的,那你是不是还要再去写代码去给他设置黑色啊,那样不太方便。
39:07
这不是必须的,知道吧,啊,但是呢,建议大家用。好。那给大家说一下,什么时候不适合用activity点呢?当我需要创建我P的时候,我要去整一个,创建一个对象。那个定向呢,需要一个context。我是不是可以把它传进去啊。可以吧?那有一种有可能有这样一种情况,这假设这个变量是个静态变量。而且在什么在什么那个application里面。I想。你觉得合适吗?他的生命周期是不是长于我的activity了?如果那个对象的生命周期比activity的生命周期要长。
40:00
那个时候就不太适合用。我们现在我们基本上是不是都用来K。那是因为我们基本上都是操作视图相关的,他们的这些人的生命周期都比FT要什么?比较短。所以说自然就用activity。对吧。这个地方啊,如果说。生命周期。啊,长于activity。是不是就必须用这一个啊,必须用它,嗯,好,这是大家需要去知道的。下面一个就是关于AR。NR呢,这个我们是其实它比较简单,而且我们上面已经说的非常非常清楚了,我觉得啊。
41:02
这包括它的现象、原因、类型、解决办法。都跟大家说了一样,大家可以了去看一下它。我就不再去强调了啊,下面这一个就关于屏幕切换的。屏幕切换,它主要是知道啊两个是如何,呃,诶诶如何强制。只能啊,横屏或者竖屏。怎么做的?好的。是不是配置文件配置啊,配置文件配置啊。呃,好像不对吧,竖屏。嗯,这是这样一个啊,在配置文件配置还有一个问题,大家需要知道如何动态的。
42:02
切换很to地。对吧。这个是不是要通过一些代码来去指定啊。啊,大家也可以需要去看一下这个呢,怎么说呢,你也不用完全的备注这个东西,你其实说实话啊,你要有这种感,就是知道有这个概念以后大概知道。你真正要做的功能,我相信大家肯定能做。就找呗。对吧。就是看大家在多长时间内能找到。对吧,有些功能是大家不需要记得太的。
我来说两句