00:00
好,下面呢,我们开始写具体的这样的一些逻辑了啊,先回到我们这个user info这个层面啊,先在这个位置呢,去加载一下界面中的这些视图。很棒。哎,把这个多余的这个方法呢,先删掉。嗯,这样的话呢,就有了,有了以后的话呢,我们一般上来呢,先把这个的title头先搞定一下啊先IV。啊,你看我这时候呢,加载完以后是不行了呀,就是不给我去提示了啊,那这个呢,肯定是你接受不了的。太不方便了,那你就有的时候呢,你先把它重启一下as,那其实也不用,你就假装跑一下。我们这里边要设置的是这样的。嗯,这个保留这个不要叫用户信息。哎,这我又重跑一下啊,主要目的我不是为了看他,然后回过来你再。
01:02
I。这是他的一个像一个小bug I title back.set那个visibility vi.visible。TV。点三的一个test。用户信息。Setting。Visibility。六点,因为怎么搞定好这个呢,写完以后呢,我们嗯,先做这个事。先说这个一。嗯,新一的话呢,这叫更换头像啊,我一点击它。嗯,就出来了一个。这什么呀?这dialog还是一个,呃,就是说这个content menu啊,那就看你是怎么调的了哈,我要是刚才说是点击掉的。
02:00
那是啥呀?又就指的all是menu哈,这还不如说contest menu呢。哎,我这是点击出来的哈,点击出来的话呢,你就搁这再logo呗,啊,你要是那个出来一个cont面就上下文的啊,上下文那个其实是是你长按出来的是吧?啊,那你更可能检查出来一个me这个这个office式menu啊凹式menu,这不是你通过menu键或者是你上面这个仨点。那点呢,他他可不会点出来的。嗯,在这呢,其实是a dialog行,那就先做这个事情哈,出来它以后的话呢,我们可以选择拍照,就是用你手机的调你的摄像头了哈,啊或者呢,从本身的这个系统图库当中选择一个图片,然后呢,设置到我们这个用户头像,这相当于是个更改头像的操作。来我们就首先呢,做这第一个事情啊,调用系统的图库,或者是相机来调用,我们再来修改用户的图像,这呢是一个点击事件,呃,我们这呢,就可以专门再去写一个。
03:04
Uncle clever。啊,这是一个IV。TV。放user。嗯,没有啊。他们。这个。TBTB没有啊,没得设置啊,嗯,回到这我们这一讲。留下。Tor。啊,修改。过不来这块呢,那就再补充一下,这个呢,先干掉在这。这个再删了,然后呢,再重新再去添加一下啊on click2加id.tv user change。
04:01
他这个avoid啊,摄音啊,甚至icon修改着这个头像。啊保存行,嗯,现在的唯一点击就调到这了,所以上来呢,我们相当于就要提供一个。点lo,嗯,所以这呢,我直接用一个D。找出来了啊,嗯,Title。嗯,选择来源。行,然后下边这块啊,这这这稍微拿出来一点,这呢相当于是一个多选了啊。选这个或选这个,嗯,这个多选了啊啊,或者我们前面也涉及到过这个单选的,哎,这这块的话,我们其实可以简单处理一下啊,直接呢就写这个items。对吧,X里边呢,需要一个哎X sequence的一个数组,那其实就是string型数组呗,所以我们提前呢,在这块你可以先写上一个啊,S4针类型这样的一个数组。
05:11
啊,这个呢,叫。选择O,角A是吧,等于又一个。在这呢,提供了一个选项,一个呢叫图库。相机。这样然后呢,把这个CTRLC放在这就可以了。啊,这样就行,那it里边呢,看看还有其他这个参数啊,需要这个监听器啊,你有一个on click这样,那在这里边这些其实就不要了啊。啊,直接呢,把它呢,就做一个删除就行,或者说你这样点一个叫size一个consable Bo是吧,这样就行啊。嗯,行,那选择来源呢,这里边儿有两项,那用户点击的是不是就是这个位置的那一项。
06:01
所以下边呢就可以。位置,嗯,对。行。哎,零对应的就应该是叫图库。相机。好,接着怎么写?嗯。这样的话呢,你要是写一段时间,你可以适当的先测试测试嘛,先你可以UI求点来一个toast,说这呢就叫一个图库。嗯,然后逗号呢,来一个false。来相应的呢,把这个再给它CTRLC啊,站到这个位置相近。来保存一下,先来看一下这个时候呢,行不行,这时候我就不不再放这个程序了啊,直接呢,来运一下我们这个美海听。
07:25
好,这时候呢,我们点击一下它。哎,进来进来的时候呢,点击这就可以了,来点图库图库再点击相击相机,好,那这时候这个逻辑呢,是没有问题了,行,那下边呢,我们具体的就开始看一下,点图库点相机该怎么去写。嗯。这边该干什么呀?呃,你一点图库是不是应该就打开图库那个应用啊。下边就相机应用,所以这呢,相当于是启动其他应用的T吧,这个应该使用。
08:01
影示意图。嗯。OK啊,所以这块我们就直接来这写了啊,可以到这写先去start啊来start来听呢,又分成两种方式。啊,一种呢叫一般启动,一种呢叫回调的启动。在这用那个,你是不是那边选了个图,一点击这个图应该带回来,所以应该带回调的,所以叫for。呃,Intent,哎,同时的话呢,你给我再提供一个request code,这呢图库我就叫它,哎picture个叉吧,提供一个这样的一个常量,一个一个来先呢写这样的一个影视意图,但这个影视意图我们是不是你得。你得去知道人家那个示意图对应的action是多少啊。这个呢,我们原来讲这个安卓基础的时候呢,也给大家说过,我们呢,就是你打开一下这个图库,你看看他这个里边activity manager对应的是哪个activity,找那个activity所对应的应用。
09:03
找到这个应用的功能清单文件。找功能清单文件里边对应的activity里边的action。我这就不那样去找了啊,这个逻辑呢,我们原来都已经做过了。然后这呢,我就直接把这个,呃,已经知道的这个呢拿过来,对或者同学说我上网查一下那也行。嗯嗯,这个写哪个后哪个。先是这个图库的。啊,这呢,直接这个action呢,就是它了。啊,那这里边包括还啊,啊就是这个是吧,这个是哈,直接呢,我们把这个就给它拿过来之后,直接就把它粘一下啊说C。嗯,包括这个在内,整个练一下准备一下啊。嗯嗯,这样就写好了,那同样的这个道理呢,相机也是如此。也得找相机这个应用对应的那个,嗯,Action是多少。
10:00
那正常我也是直接呢就粘过来。啊,CTRLC下。这么着啊。行,这个完了以后呢,请求码需要提供一下picture enter创建一个常量。这个呢比叫100ALTA左再回来camera。200。啊,再凹走回来行,这呢,我们相当于就应该就可以去调了啊,那去掉以后你选了一个是不是又回来了。选了一个那个事儿不用你管了,系统人家都已经都都写好了哈,那我现在主要关注的就应该是重写。是不是这个回调啊,哎,重写。啊,调用或者叫启动啊,新的MTV。啊,以后的这个微调方法。哎,我们讲activity生命周期的时候,不是说过说过这个on activity result这个方法跟你又又重回来,这个activity又变成一个可见可操作了,它这个方法刚跟这个on resume方法谁先调。
11:13
这是一,这是二实现。二线吧,哎,然后才是一调的,所以说呢,你回调以后在这写逻辑,如果呢,你还有一些什么样的操作要更新啊,是不是可以写到这里面。就这样。行,那这个方法里面呢,我们就得判断一下请求码是camera还是picture啊,结果码结果码人家都叫result OK了哈,啊,你这块呢,就可以这样了,说如果。Request code。Every request cold。怎么用,不过提示。啊,写错了啊。如果这个request code等等于啊,比如我们写这个camera,同时。
12:00
这个result code等等于啊,这个都叫result OK,或者再加一个,并且呢,你这个data得确实给我传过来了。那得不等于个no。啊,这是一种情况,Else if。啊,把这个粘一下。这个呢,就是那个picture。啊,那相应对应的就是每一个回调以后啊,我这如何去处理这个图片的问题,这呢对应的是相机。这是这个图库。嗯,下边是不是就得该处理这个逻辑了,哎,这个逻辑,那我们就先看一下这个相机。啊,那正常情况下,你这调这个相机啊,调这个图库啊,实际上也是一些权限啊,权限咱们在这个公共器软件里边都写了啊,回头你自己,嗯,就是记得给他都加上啊。然后呢,如果你调的是相机,那相机选中的这个图片是不是就在这个data里。
13:05
那我想我们都要干什么事儿?嗯,首先呢,你是不是先把这个图片呢,先给它弄出来。哎,然后这呢就是个data,呃,这个呢,你要是嗯不知道怎么去处理,其实也可以百度查一查啊,就是呃,如果我调上相机以后回调了,把这个图片取出来,因为你得毕竟在data里啊,Data是一个intent,他放的这个数据不都是建对的放吗?你得知道人家那个K用的是什么是吧,这个你猜不出来啊,你得该百度查一查。嗯,然后得塔点这个呢,先可以这样调啊,盖了一个en。哎,然后这个S呢,有一个get方法,哎,它这个图片呢,就放在这个叫data里。知道,这就相当于我之前已经查到了啊嗯,然后呢,返回回来的就是一个比特麦。那那这个我们就需要做个强转了,就是一个图片。
14:01
嗯,得到这个图片了。那这个图片呢,实际上就是你从图库里面获取到的,嗯,从相机这块你照了一张,那你手机的话呢,不就是竖的吗。那你得到这张图片是不是也应该是这样的一个句型啊?你现在要把它设置到你这个界面的这个小圆圈的显示。是不是也得,哎,对对这个图片进行处理啊。啊,对。啊,获取到的这个bit map对象啊,或者这个进行啊,先是一个压缩,接着是一个圆形处理啊,上面这步呢,是获取这个图片对象。嗯,行,这就是个第二步,那我们就调一下bit map u点先zoo一下。嗯,然后呢是biten map先它是吧,下面呢是有一个压缩比例。这咋写啊?
15:02
压缩成多少?我们在这里边写的是一个。自信了,嗯,在这。嗯,那你这写字是用你上,嗯,上边这篇上边user in for。嗯,我们在这里边有你这个是不是他呀。是不是要设置给他显示啊,CTRLC一下。哎,他点get这个Y,嗯,然后逗号IV。啊,本身呢,其实它就是一个方形的啊,所以你get hat跟get one得到这个结果应该是一样的,那这几个hat吧。行,这呢,先做了一个压缩处理,那我就返回的结果还用给接收一下。这样啊,然后的话呢,再使用bit mapb u点做一个circle的一个处理。把这个b map它扔进去,嗯,再拿bit map接收。啊,这呢,就是个圆形处理好处理完了。
16:01
处理完以后干什么?加载显示。那加载显示直接呢,就拿这个IV这个它点下一个image map。那这样就显示了。以后还要做别的事吗?哎,对的,说说传到服务器这个想法很好啊。嗯,你想想你这时候呢,是你自己在本地这块改了一个头像,那你这个头像回头你本地既然改了这个数据,是不是应该服务器那块也得更新一下,嗯,就是这里边大家要有一个理念,就是本地那个图片呢,本身来讲其实应该算是靠不住的啊,就是服务器的数据都是最新的,所以你本地做过一些更改以后呢,一定要及时的到服务器上把这个数据上传过去,更新一下服务器的东西。啊,然后本地这块呢,数据有可能是旧的。比如说你没有网,就是我也存一份,比如说你没有网的时候,就比如说正常情况进来有网,我们去从服务器过去,然后没有网了,我在家里是本地的,那本地这个数据有可能是旧的,服务器一定都是最新的,不要在本地存一些新的数据,不往服务器发啊,那当然这里边我们这个呢。
17:13
就省略了啊。就你自己写的时候呢,在公司里边急着做这个事情。到时候也别写个省略哈。那还需要做别的吗?嗯,其实上传服务器的话呢,你给他更新一下,那本地的话呢,我这也存一份吧,啊,万一你要没有网的话呢,我拿本地里边显示的,嗯,所以我们再保存到本地啊。嗯,保存到本地呢,我这就写成个方法吧,叫imagine。Save imagine这个bit map map。直接写就行。这个方法呢,没有先暂时的给他先造出来啊。
18:02
比特麦。保存到本地的操作。那这个呢,我们一会儿过来写这个方法,那是不是基本上我们这儿呢,就做这样的事情就行了。图片也过来了,页面也显示了,本地也存了,呼吸上面也传了。做完了。哎,就做这样的事情就行啊,所以这呢,我们先把它完成一下。
我来说两句