欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android属性的使用以及obtainStyledAttributes的四种用法

程序员文章站 2022-03-16 16:19:51
android属性的使用以及obtainStyledAttributes的四种用法。 attr 属性即变量,一个用于制作ui时需要的变量。既然是变量,就有变量的声明,赋值和使用...

android属性的使用以及obtainStyledAttributes的四种用法。

attr

属性即变量,一个用于制作ui时需要的变量。既然是变量,就有变量的声明,赋值和使用:

声明

一般在values目录下的attrs.xml文件里使用attrs标签声明

//name:变量名称, format:变量类型
    

动态获取的(通过obtainStyledAttributes方法),需要使用属性集包裹:


        
        
        
    

赋值

一般在values目录下的styles.xml文件里使用item标签声明

@color/yellow
        10dp
        第二种

外部必须使用style包裹,每一个style可以理解为一堆属性赋值的集合。可以为主题和样式使用。

使用

静态使用:
通过style使用


//AttrStyleStatic的定义:@color/yellow
        10dp
        第四种
2. 预定义:

//attr4对应当前主题里声明的item
        @color/colorPrimary
        @color/colorPrimaryDark
        @color/colorAccent
        @style/AttrStyle4
动态使用:
在布局xml的根节点声明:

xmlns:app="https://schemas.android.com/apk/res-auto"
在需要的view上通过app:{属性名}引用:

动态获取:

//对应于当前主题的赋值
context.getTheme().obtainStyledAttributes(R.styleable.AttrTextView1);
//对应指定的R.style.AttrStyle1样式下的赋值
context.getTheme().obtainStyledAttributes(R.style.AttrStyle1,R.styleable.AttrTextView1);
//对应自定义view的赋值,如上2
context.getResources().obtainAttributes(attrs, R.styleable.AttrTextView1);
//四个参数包括了上面的三种情况:
//第一个参数:对应自定义view的赋值
//第二个参数:属性集
//第三个参数:对应主题里的属性赋值,这里的属性一般不对应一个值而是一个样式的引用
//第四个参数:对应指定样式下的赋值
context.getTheme().obtainStyledAttributes(null, R.styleable.AttrTextView1,R.attr.attr4,0);