style和attr的 温习

本文介绍了Android中样式(style)和主题(theme)的概念及其使用方法。深入探讨了attrs.xml文件的作用,以及如何通过declare-styleable声明属性。同时,还讲解了style的属性值类型及其来源与优先级,并解释了defStyleAttr和defStyleRes的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android l引入了新的theme,so,你需要温习style

有这样一篇文章(所以,本文为 转载):http://www.cnblogs.com/angeldevil/p/3479431.html

之下为 总结:


attrs.xml
其中定义了,app中允许出现哪些属性

declare-styleable
声明了一些属性
形式:

<declare-styleable name="styleable1">

        <attr name="attr1" format="" />

</declare-styleable>

系统会为我们生成:

R.styleable.styleable1(为int[]类型,而其ele为 styleable1所声明的属性)

R.styleable.styleable1_attr1(该属性 在 styleable 中的索引)

声明在 styleable中的属性 和 直接在attrs.xml中定义的属性 有什么区别:

当我们自定义了一个view,可能需要为该view设置一些属性,而这些属性从哪里来:往往来自styleable(和,系统已经预先定义的属性)


style
一些 属性和其值 的集合

属性的值类型:

string,int,color等

reference

引用了什么:一个style


属性的值的来源 和 优先级:
在layout.xml中,定义 view的myappns:attr1
在layout.xml中,定义 view的style
在view.java中,指定 defStyleAttr(而当前theme会指定 该styleattr引用了哪个style)

defStyleAttr 和 defStyleRes:

出现在:public TypedArray obtainStyledAttributes (AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)

而你可以通过:tarray.getxxx(R.styleable.styleable1_attr1);获得属性值

在view.java中,指定 defStyleRes(起作用的情形:当defStyleAttr为0 或者 defStyleAttr不为0,但是defStyleAttr并没被指定引用)
在theme中指定属性值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值