Android实现自定义View的自定义属性的一般步骤

        在学习android过程中有很多东西要学,学的东西多了,就容易记不住。特别是一些步骤繁多,使用少的一些东西。那么我们就要多总结归纳,从中找出一些规律,总结出一般步骤,并且记下来!那样我们以后用到的时候就会非常快的回忆起来。那么我马上要做的Android实现自定义view以及自定义属性的一般步骤,也是我自己在学习过程中总结出来的,很多都是个人观点,靠自己的经验总结,有不对或者有需要改进的地方,还请各位兄弟姐妹多多指点。我用的例子是我学习的教程例子,我自己又加了点东西,还不错,最后会给出源码供下载。话不多说,现在开始!

      1、首先确定自定义的View的一些属性,例如我这个实例是流星下落的画面,分析出流星有 数量 长度 颜色  颜色是否随机等特定(这些属性可以根据自己具体需求添加添加),然后就要在values文件下新建一个attrs.xml,如果有了,就不必要添加如下:

    2、然后打开attrs.xml在里面添加自定义的一些属性,如下:

declare-styleable 后面的这个name属性非常重要,因为在java代码中要用到,就是给你的自定义属性的集合取个名字,<attr />标签就是每个属性,attr后面跟的name 是每个标签的取的名字,尽量通俗易懂,format后面的就是这个属性的类型,就是你的属性是int类型,还是boolean类型之类的,关于自定义属性类型总结,请移步到这篇博客自定义属性汇总

        3、自定义属性完成之后,就可以在布局文件的中,使用了。首先,先设置一个自定义的Veiw ,找到你自定义View的全称如下:

把它复制一下,粘贴到布局文件中,并设置想要的属性,这里看到后面4个属性是自己定义的,并且设置了相应的值, 这里的值的格式就是在第2步中设置的。如下:

有人会问  rain:  是怎么来的,在使用自定属性之前,还有重要的一步要做,那就是在顶部定义命名空间,这里不详细介绍,还请各位有兴趣的百度一下。看看是怎么做的就行了,如下:

这一行   xmlns:rain="http://schemas.android.com/apk/res/com.my.rainanimation"  就是我们自定义的命名空间,其实格式就是 这样的:          xmls: 自己定义一个命名空间的名称 ="http://schemas.android.com/apk/res/ 自己工程的包名"

在这里就是  自己定义一个命名空间的名称=rain, 自己工程的包名=com.my.rainanimation

有些时候可能记不住自己工程的包名,可以到 AndroidManifest.xml中去找,在下图的这个位置 package后面的双引号中的就是:

           4、在布局文件中我们设置了我们自己的属性后,那么我们接下来就要在java代码中实现了这些属性。如下图:

首先定义出自己的自定义的属性,然后在代码中从第2步中解析出这些属性并使用,如下图:

把鼠标放在obtainStyledAttributes可以看到它的解释,如下图:

意思是说在这个上下文主题中检索样式属性信息。从attrs中,解锁出RainView中的属性信息,而这个RainView就是第2步中定义的属性集合的名称,从这个集合中分别取出属性进行检索。

rainNum = ta.getInteger(R.styleable.RainView_rainNum, 50);

我们在定义rainNum的类型的时候是定义的integer,这里就是使用getInterger,大家注意观察,如果是String的话,就是getString;

括号前面一个是RainView_rainNum,这个就是格式,属性集合名称_具体属性名,括号后面一个50是默认值,如果你在布局文件中没设置这个属性,那么在这里他的默认值设置成了50;如果在布局文件中设置了这个属性的值,那么这个默认属性就没有用了。比如我么在布局文件中把rainNum设置成了2,这里的50就没有用了;

          好了,到此为止,Android实现自定义View的自定义属性的一般步骤就基本完整;然后大家就可以在自定的view中使用这些属性了。作者自己也是才入行不久,上面讲解的没有什么高深的言语,都是一些很基本的过程,但就是这种很基本东西,如果一段时间没有用了,很多细节就容易忘了,所以大家要善于总结。网上看了很多大牛的视频,讲得都很好,但是不善于总结归纳,很容易就忘记了,我们想要快速的掌握一门技术,就必须站在巨人的肩膀上面,多发现,多总结。希望大家和我一起进步,每天进步一点,量变引用质变。那样才能学到真把式!下面奉上我自己的一个演示:


最后奉上源码,希望大家从中学到东西。

           下载实例代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值