00:00
接下来我们讲一个自定义属性啊,自定属性。好,那智力属性有常用的一些属性有哪些呢?同学们,这些属性对应一些一些一些类型啊,这些比如说颜色啊布类型,你看平时我们在布局里面,大家可以感受一下。在布局里面,你看这引用的是一个尺寸类型。啊,这是又又可以是啊。就是你也可以去选一个具体的值,对吧,可以选这样的值,到时候呢,我们我们讲到这里,我再再再说啊。好,那解了过后,我们接下来去做这样的一个功能。就是自定义我们的一个属性,好好去创建。右键创建我们的一个model。好,这是第五个了。零五好,那么我们叫自定义属性对吧。
01:04
好,那我们去把它给这个。好,停下了,这个名称叫这个。L9AT t。啊,就是属性,这个呢,是属性的意思。然后我们接下来往下走,凹求就自动是吧,好点击它。好,然后呢。往下走。好,那么在我们这地方旅游过后,同学们,我们去把这个哥们呢打开,好注意了,这个正在创建。好,然后有那个后,我们在这个地方里面呢,去选一个类。好,来到我们的这个。布局文件这里。好,那这个时候阿文就没有生成,我们建议把它给运行起来一下,它就会生成了。啊,运行写下就生成了,好,现在呢运行。
02:06
好,那运行起来过后给大家看一下。好就不要做了吧,好,然后这个时候呢,也运起来了。OK,来到这地方,我们呢,把这部分把它改为一个自力。制定一个类,好,我们先把这个自定类给做出来,右键创建一个类,我们就叫MYA是吧,就是我们的。属性的一个视图对吧,好继承的是谁呢。继承的是我们的U对吧?好,然后我们把它构造方法实现一下,那我们要实现哪个。实现哪个构造方法带有两个参数构造方法,因为带有两个参数构造方法是在我们的布局里面使用啊嗯,好,那么这里面呢,这个字。
03:00
定义属性啊,那么有同学们在我们这个地方里面呢,我们去把它这个。把他的给。拷贝,把全图径拷贝放到到哪里来,放到我们的这里面来。然后呢,把这个干掉,那这里面有了过后,我们可以让这个们呢,填充整个窗体啊,填整个窗体。好,那这是有轮廓,同学们,这是一个属性吧。安卓对应的一个什么,它宽度高度是是这个空间的一个属性吧,那接下来我自己能造一个。一般来说叫做APP,然后对应的比如说我们的这个MY,这个egg。等于是一个多少呢,100对吧。好,那么当然我们也可以把这个叫做阿硅谷,知道吧,你想写什么就写什么。
04:03
然后有三个,一个是我们的这个内蒙,内蒙是什么类型呢?喜讯类型好比如说我们的安卓,咱们班是0223是吧。好是023吧,二零是吧,好,那这个时候呢,过后好注意我们是有一个。背景啊,那这个时候呢,我们就圈job啊,这个job的话呢,它没有生成这样,那这里面呢。要不把这个。过来。好把它给干掉,然后这个时候引用我们的图片,那图片我们现在有了吗。还没有对吧,好,我们这时候去创建一个目录装图片啊。好。Job JO,这个JOW-HDPI一般是这个目录是吧,然后我们在本地有一张图片啊,我们随便教学资源里面图片,然后呢,我们随便去拷贝一个图片啊,这是一个美女图片是吧。
05:17
好,把它拷贝过来。好好这个。啊TX是吧,好,那是有了过后你看这些这个哥们,它会自动提示我们要要怎么做,看到没有好这个时候我们可以给大家看好啊选择它,然后我们out是不是可以可以帮我们生成这个数来了,好out你看这面是多了一行什么这样代码。好,这个时候是不是硅谷就有了,是不是。好,那这个时候还报错吗?报错了,但是现在我们就要这样去运行,可以吗?啊,所以我们这样运行的话啊,它肯定是不行的。
06:02
你看在这里面的话,它不就有问题了吗,刚才在这里面。你看是直接说对方里面。这个这个这个里面是没有找到这个。资里面是没有找到啊,去义样的。目录下创建我们的一个文件啊,叫at TQ。At t。RS,好,那具体叫啥名字呢?其实我们这里面有一个参照给他看好啊,在我们地方里面SDK,然后。DK,然后找到我们的不同的版本,任意选一个啊都可以,然后找一找date date这里面呢有一个。Res直用文件找value value这里面它有一个叫at drs,看到没有?
07:03
好,RS过后呢,我们可以去找一找,找哪里呢,我们找U。然后在当前文件中查找好,这个时候呢,我们去把它往上拖好,我们去找。好入入的话呢,这个空间是就是入啊好双击一下。那同学们你会发现,你看这里面它did的类型是什么?是这是一个什么,这个是词引用吧,好,这是翻译中文是引用的意思,这个T呢是什么?是句类型吧。然后这个是一个尺寸。好,还有背景,背景的话,你看平时我们设置一个背景是引用一张图片啊。也可以设置一个颜色呀。好,你这里面是都是距离左边多少个像像多少这个具体是是寸。
08:00
好,然后这里面你看隐藏显示是不让我们去选择某一个,是一个是一个,这是一个什么枚举啊。你看我们隐藏显示不是只有设置这三个参数啊,看这的都有,然后这里面呢,可以给大家看一下是不是有这些常用的。常用的这些属性啊。引用颜色布尔尺寸浮点。但是注意它都是小写,知道吧,都是小写,想明白了吧,好,那有了过后我们就是at t RS,所以就这样可以了,好,因为这个文件就叫什么at ts。然后点击OK好点OK过后,然后我们的地方里面呢,去把我们的这个内容。给定出来,好,你看它自动帮我们叫这个名字对吧,好。然后有了过后好提出来在这个地方里面,我们再去定义一个属性,好我们还记得这个布局里面我们选了什么吗。My name。
09:01
My name my name它是什么呢?好,注意了,My name是什么类型呢?它是词句类型对吧,你看它是怎么定义的啊,你看它是一个form啊。注意这个属性里面,假如说他一个内幕有了,是不是一个form啊。好,那接下来我们在这个地方里面啊,就不就是。这个可以。不要在这个地方里面就是类型,它是一个什么直距是不是这没问题吧,但是实菌是大写是小写小写对吧,然后再去第一个值内蒙的话my egg。A格的话是什么类型呢?是一个是类型那有提示啊好,然后接下来那my my big big40我们引用类型呢。好好,那有类型的话就是啊是这个注意背景是不是还可设置颜色啊,好就是我们的什么看明白吧。
10:07
好,那同学们这个时候呢,它名字这这个名字其实我们任意取都可以,但是一般来说我们是针对这个空间设置它的属性的,我们现在是设置。这个空间的属性,所以呢,最好叫什么名字啊,叫它那么一个空间里面是有可能有多种属性的,距离左边离右边各种各种各种属性值啊,所以这个地方里面你要理解成它是一个什么。理解为一个属性集合。定义我们的啊,名字叫这个的一个属性结合。属性集合,因为一个人里面是有各种各样的属性的,所以呢,它只是,呃,这个用它来就可以引用不同的属性,好这个呢就是。
11:02
定义一个名字叫MY。并且类型是词句的什么属性?对不对,这没问题吧。那这个呢,就是名字叫。内蒙并且类型是我们的特对特对吧。好,那么有了过后下一个。好,这就是我们的这个my big。类型是这两种类型。好,那么我们现在再去运行起来,之前报错是吧,现在呢,它就不会不会抄报错了,好那么不会报错过后,这个时候可以大家看到我们的这个效果,就是你啥也看不到,因为我们对属性我们进行取值了嘛。
12:07
没有啊好,那也就是说同学们,我们在这个地方里面。要对这个们进行取值了,这证明的属性进取。好,那取过后它是怎这个时候呢,我们怎么取呢。好,同学们,大家要注意了。大家有没有思考这么一个问题,在布局文件里面?这里面的东西。怎么能够呈现到我们的这里面上。其实绘制的对不对啊,大家知道是绘制的,但是大家想一想,那么也就是说明明我们在布局文件里面定义一个类,它就怎么能显示上去的呀。是不是实例化呀?对不对,所有类要想去在内存中使用,是都要实例化呀,实例化,那么在布局文件中我们是怎么实例化这个类的呢?
13:04
反射。用反射好,那同学们他会怎么一回事呢?他会把这些属性的值。这些属性,这些属性它会。把它封装到这么一个类中,叫属性的一个集合,看到没有?然后当遇到这个类的时候。这类的时候,他会拿到这个类的全类名,你看为什么,为什么为什么我们要选全类名的原因呢?就是只有只有拿到这个类的全类名,我们是才才可以反射呀。但是为什么系统的不需要呢?系统。因为系统的他知道自己的路径了,知道在哪个包嘛,但你自定义的他不知道嘛,对不对,所以他要全那边他才知道对不对,所以我们这个自定义空间,我们可以这样写吗。可以吗?肯定不可以,对不对,这样的话系统找不到,那也就是说这样写过后,我们的系都找到了,好那么这个差是不是需要解析啊。
14:06
他用解析,解析过后,然后如果这些属性,它就会封装到这个类的。这个。这个类的这个构造方法里面的这个类里面。然后我们只需要去从旁面获取,就可以得到这里面的属性,然后这个文件是用库去解析,然后解析好过后呢,然后如果遇到类,它就反射的方式把它实例化。实例化后,最终它才得以显示。包括我们这个反射。大家有没有讲节哀啊?当我们当我们里面的这个这个当我们这个C语言要去拿到。去操作Java的某个实例是反射啊,这里用到反射,如果有个面试官问你,你说一下你工作中哪里用到反射,你就说咱们之前的这个GI里面有个项目里面我们要拿到Java语言的。
15:05
这个这个这个这个这个某个类的实例,这是我们用反射把它实例化啊,去调它里面的方法对不对,是调就是C语言去调Java的时候,不是通过反射去实例化我们的Java代码中的某个类,然后再去调查的方法是吗?是不是同样我们在这个解析的文件的时候。一个类,我们之所以可以让它显示屏幕,我们也是在参考这里面得到的全类名,然后通过反射把它实例化,因为任何一个类都需要实例化过才能显示明白吧。好,就这么一回事,然后接下来我们把这些信息把它取出来,好,那么属性我们有三种方式获取属性。属性三种方式。第一种就是用。
16:06
用命名空间去获取,好什么是命名空间呢?好,同学们,像这个就是我们的一个命名空间。你看啊,这,这就是一个命运空间,一会儿我们用它去取。那么面控件以前的一个历史,注意一个历史的话,要把这个改为多少啊。改为苞米。报名,如果大家在一颗LIS开发,就要把这个改为报名,但是angels丢丢呢,是新工具吧,这时候呢,它要改为这个知道吧,因为不同工具它有不同的处理嘛,这个是在一个历史做这样的一个事情啊,尤其大家知道一下啊。好,那么有了过后同学们,我们这个叫艾特硅谷,这个可以改吗?
17:01
啊。可以改啊,任意的啊任意的明白吧,这个前缀任意改啊,你可以试着改,随便改APP啊都可以,一般叫APP,当然我们为了这个咱们有有版权是吧,咱们叫是不是。好,就是你可以叫个名字,比如说我们之前在联想的时候,工作的时候就叫联想是吧?啊好,那么这个生命空间。然后第二种。便利便利我们的便利,我们的属性这个集合啊,挨个取出来第三种。使用系统控件。系统控件。啊,系统的系统的工具吧,工具啊,获取我们的属性啊,那那么接下来第一种怎么做呢?好,这个地方里面大家看好它有一个这样的一个方法叫get,你看啊。
18:09
丘,这个是个命。用它。第一个参数啊,就是我们的一个命名空间。注意没有空间这部分。你不能,你不能去想。这个也是命运空间,但是不能用它要用谁呀,自个定义的知道吧,这个自个定义的数字,那拷贝到哪里来呢。整理起来。好,接下来我们要得到哪个值呢?好麦。年龄好,这就是可以得到了,看到没有,大家可以点F2看一下,这个时候呢,它其实得到的就实训实训看到没有的实径好,那么在我们地方里面的话呢,我们接下来它得到的实际类型A个好,那么有了过后。
19:07
一个是内蒙。就是卖内蒙吧。好大家一定要注意啊,你最好是拷贝啊,因为我是比较熟了,好这个好这个呢。这个好,然后有了过后,我们要把它给统一,把它打印出来。好,然后TN,好,这个时候我们把它打出egg。这个内蒙。好,然后的话呢,在我们地方里面的话啊。这个big。
20:03
好,那这个时候我们去运行起来,同学们,我们就可以看到我们的这样的一个效果了,好。起来。大家看一下好在我们地方里面A100内蒙安卓0220B格是不是有了,但都是实际类型对不对?好,反正是得到里面的值了,接下来便利的方式怎么做呢?不求凡就行,I等于零,I小于我们的这个AQU的一个get,才我们的一个属性的一个集合,然后这个。是什么呢?就是这个I加加好,那这个时候我们去把它给打印出来。首先可以得到它属性的。名称好属性的一个get属性的名称根据它的I去获取,然后相加中间一根杠啊就是属于名称,然后再去去加上取它的值。
21:17
这是也根据,呃,在我们地方里面也根也是根据他的这个index。这种便利的话也可以取出来啊好,那上面这个呢,我们就先把它给这个注射掉。好,大家看好啊,同学们。好,你看是几个都取出来了。好,那负一是什么?同学们,负一就是。是前的状体啊。好填方的一个值,那这个呢,名字得到了这三个值,所以得到了。好,那么我们要想绘制,假如说这个是不是图片是不是有引用的呀,那是不是我们如果绘制是这一个文本呢?但是我们要把这个文得到是文本,要我们去把它给图片画出来,是不是不行啊,需要把它变成一个b map吧,好,那也就是说上面这两种都无法满足,就但是这个名字年龄我们绘制是没问题对不对,但是图片绘制的话是有问题的,对不对,那接下来我们用系统工具。
22:18
好,那哪个系统工具呢,大家可以看一下,我们这个里面它有一个类。点击。要走,你看它这里面有一个什么太白漏,太白漏里面呢,大家看好它可以得到我们的什么呢。大家看一下,它可以往下走,它可以得到类型float类型。啊,看没有。啊,这里面呢,啊,它还可以得到。还的脚补等等啊,一会我们就立刻就用到了,好,那也就是在这个地方里面,我们可以把这个类系统这个工具呢就用。就这个。啊,这个好,大家看好啊,用系统工具了,好,那么这个时候我们就ta。
23:07
好,然后上下文,然后这个里面你看我们就用。第一个参数啊,第一个参数注意了,这里面它有它有好几个方法,到底用谁呢。好,那同学们在我们这这个地方里面的话呢,我们就。你看。第一个参数attribute,我们可以用这个attribute就是。他。好,第二个r.job。啊,还不是救我了是什么呢,说我们自己的这个。看一下。就是他吧。好,然后它里面有一个什么属性,看到没有这个属性,你看是我们之前用过的,对不对,他一点就进这里来了。好,这个是我们的定义的属性集合啊,还有印象吧,然后在这个地方里面同学们。
24:01
他这边可以做什么操作呢?你看他可以得到我们的什么。交补了吧,是不是?好,它还得得到我们的count是不是?那么我们要把它挨个把它便离出来,也需要便利。啊,也需要便利或in的类型,I等于0I。小鱼这哥们。的一个get文的。Index count I加加好,然后把它定义出来,过后注意了。把它。被卡住了。突然。要切换一下。再好的电脑怎么再用一六十的话也会卡呀。OK啊。好,然后有了过后。
25:04
他删不掉了。好,然后这地方里面。Get我们的。这个index。好,那么呢,根据I,这个时候它返回的是一个形inex inex,好,那么接下来有过后,这里面区分一下了,Inex,根据index来去找不同的ID。点这个。这个门你看这个有一个什么。My age。是去去找对应的信息啊,好,总共有几个啊,你做了三个。这是我们的内蒙。这个呢,是我们的B是吧,这个,然后这个地方里面呢,我们就是这个A。
26:09
它等于我们的这个工具。Get,它是什么类型呢?Int类型对吧?Int类型,然后把这个index进去。默认呢,是个零,这没问题吧,好,然后把它写成类的什么样,因为我们一会把它绘制出来。我们呢,把这个。好,把它写成是类的纯变量,一会我们要用它好用的类型那个好。喜剧类型内蒙对吧。好,少了一个什么T。好,然后呢,接下来的背景是吧,背景是b map类型,就我们把它总分BB map那种类型。
27:00
好,那接下来这个时候。A格哦,它跟上面一样的对吧,那我们就那我们就咋整呢,就是A格的话,我们加上一个麦。Egg。MY。内蒙。MY。这个。MY,这个这对吧,加上一个麦好,那这个时候呢,就外面的。好,然后my name,那么这个地方里面。去get我们的时间类型吧,好index OK了,好,然后接下来这地方里面。注意啦。他这里面呢。要去得到bit map,注意它无法直接得到bit map,你看D是面没有啊,但是有job看到没有。
28:00
Joel。好,然后inex重新来,然后它返回的是一个job。那job的话呢,但是它可以转换为我们的map job。Bitter。Bitman。好。然后。把这个呢强转。强总过后注意,因为强总过后这个是把它给得到过后。注意大家,同学们啊,看好啊。这个bit map,它的父类是谁?是job是不是,那也就是说这个我们把它得到,就相当于这个是得到了一个父类,父类的实力啊,父类的引用指向孩子的实力是可以吗。可以,也就是说这个本身这个这个它的的引用的其实是他的实力吧,这样情况我们才可以转换吧。
29:03
否则是不是可以啊。大家有没有有没有学过这个,大家可以做这样的一个判断,叫instance,还有印象吧,是不是就判断是谁是谁的实力啊,对不对,那也就是说这个实虽然是他的父类,但是他引用的是他的实力,这样的话总会为他自身用这个左右知识是可以的。好,那有了过后我们的MY这个它就get成b map,好就把这三个呢,就获取了,这你看有十俊了,也有别的map了,是我有绘制了。绘制出来,好,那这个时候我们就是把它给配出来,然后就。如果是太子文本太简单,就是my name加MY加上一个杠,杠杠加上麦,这个麦什么呢?My egg。
30:02
对吧。那这个注意了,这个地方里面还有。还有这个聚集。这是内容。是坐标啊好,我们都是50 50还有画笔吧,看好画笔。画笔的话呢,我就直接在里面选了画笔,然后另一个画笔。是吧,好,那有了过后注意还会绘制图片吧,好,注意绘制什么呢?位置变map my这个,然后这个地方呢,也是距离左边。50 50,然后派好,那同学们,这个时候我们就可以把它绘制出来。好去运行起来。好,大家看好,你看。
31:01
文字咱们这个内蒙有了吧,年龄有了吧。这种图片绘制出来了,那也就是说这个项目这个自定义属于那个价值在哪里呢?价值在于以后你去看代码的时候,诶老师怎么这个可以叫做APP呀,咋来的呀,是不是,然后这个时候你看啊,你改为APP看行不行,好你们再去运行起来好。那么这个时候呢,我们去改改。好,这个时候我们看行不行,一起想想是不是能涛声依旧啊对不对,那也就是说大家以后只要掌握的是,诶老师这行代码哦,以前我没见过嘞,哦诶上谷嘞,也不见过是吧,那这时候你知道哦,原来是自定义属性。然后有了过后能够把它获取出来,获取有三种方式,一般只要掌握哪种啊,这种上面那两种可以什么,不管它咱命空间啊啥的是吧,这种的话用这个去是,然后里面主要。
32:03
是吧,你看这里面要用的一个什么,之前定义的吧。对不对,然后I就是运语句,这里面得到的是一个索引,I去取,你看这个in的类型词句是吧,好去取,关键是要用这个。好,那有的同学会说,哎,老师啊,这根们怎么就可以找到呀,其实啊,它是什么,在R文件里面,它肯定会什么生成的R文件在哪里啊。啊,我看看啊,啊文件。呃。我们平时的这些类啊,你看这些是不是有R文件呢,当然这个是我们的V7的,然后平时的R文件。呃,在在在看看啊。啊,这个你看啊,这按文件大家看好,你看动画这属性你看没有看,呃,在在在。
33:06
嗯,我看看啊。这个二文件。这么多啊。动画,然后我们搜一下。这这里面。有一个去啊,他其他也放在这里了,我们找找自定义的。在这。啊。这APK。我看刺客的文件。太多了啊,一下子少的话我看看。丘比的属性也太多了。
34:03
啊,这样,呃,我想想我从哪里找一找啊,点击进去。呃,然后找到这里。出去。那我就从代码中。点进去哦,他跑到这里来了,呃,那就这里。啊,他嗯,就是他就他就是生存在阿文解里面,它就能找到了,啊这只是说太多了,嗯。太多了,好,那也就是说同学们。他。是从我们这个R文件里面找的,但是这个R文件里面我这样我这样。我搜一搜。找到了吧,看见好,咱们再搜这个。阿文健以后又得聪明一点是吧?你看找到了吧,同学们。好,可以找。
35:00
就它看到没有,这个它已经把它变成什么这样的数字了,是不是好,然后就直接就在上面下面看到没有。是不是你找到了啊,以后大家以后注意了,你看这太多了,以后以后你像我一样是吧,呃,就搜一下就可以了,对不对,好,那同学们这一块就是我们所讲的智力属性,只要注意以后看代码知道这个东西是什么就可以了,保存。
我来说两句