TypedArray详解

我们如果想获取android的资源文件,可以使用context.getresource.getXXX得到,也可以通过TypedArray得到,对于我来说TypedArray还是比较陌生,最近一直使用RecyclerView做东西,其中分割线ItemDecoration可以使用TypedArray来获取本地的Drawable文件,所以对他产生了情趣,鉴于网上没有详细的TypedArray的译文,今天打算把TypedArray通过自己的理解翻译一下,仅供参考,不喜勿喷啊 ~~

先po上地址:如果没翻墙:http://www.android-doc.com/reference/android/content/res/TypedArray.html

如果翻墙了:https://developer.android.com/reference/android/content/res/TypedArray.html

路径其实只是host地址变了下而已。


不难看出,TypedArray在api1的时候就已经定义好了。

TypedArray是存储资源数组的容器,他可以通过obtaiStyledAttributes()方法创建出来。不过创建完后,如果不在使用了,请注意调用recycle()方法把它释放。

他可以通过检索res资源中结构的特定值的索引的到对应的资源。所以换句话说,通过他能够得到我们想要的资源。

官方api还列出了TypedArray的公共方法:


这些方法大致的意思是通过    “资源索引“(index)可以得到相应的资源,其中有参数的方法第一参数大体来说都是资源对应的索引,如果有的方法有两个参数,那么

第二个参数就是返回的默认值。


好了,现在我们看得到TypeArray的第一个方法:

调用obtainStyledAttributes方法,会返回一个TypedArray,持有属性排序的属性值。

如果传入的第一个参数AttributeSet指定的是一个样式,那么这个样式将会被应用到 定义好的基本属性的顶部。


确保在使用完TypedArray后,用TypedArray.recycle()方法释放。


再来看看这个方法的参数



 在决定指定属性值的时候,有四个输入项会参与决定。

这四个项分别是 

1.提供的属性集

2.属性集中声明的样式(style)

3.通过defStyleAttr和defStyleRes指定的属性

4.在主题中的属性值

任何一项输入项都是被认为有序的,并且第一项,也就是属性集拥有决定权,换句话说,如果在属性集(AttributSet)中你指定的button的字体颜色是黑色,那么不管其他样式风格怎么设定,都不会改变他的属性。


剩下的就是参数了 。


为了方便,还提供了三种方式:





来获取TypedArray。


待更新TypedArray的具体用法,有时间了再上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值