-
自定义属性查看全部
-
context.obtainStyledAttribute(attr,R.styleable.Topbar);查看全部
-
androidUI模板设计查看全部
-
具体实现查看全部
-
监听接口查看全部
-
添加控件到布局中查看全部
-
精髓所在,改需求就想改TEXTVIEW那样改即可。查看全部
-
使用自定义属性,需要在XML中声明改属性坐在的包(命名空间,xmlns:app="http://schemas.android.com/apk/res/com.example.topbar">) 应用了属性的构造函数要用第二个。查看全部
-
添加到布局中查看全部
-
重写控件,满足要求 1. 自定义一个Topbar类View继承自RelativeLayout 如果Topbar UI模板(View)需要自定义属性,其构造函数就要使用public Topbar(Context context, AttributeSet attrs) 2. 定义UI模板中的三个控件,声明要使用的属性 private Button leftButton, rightButton; private TextView tvTitle; 3. 给这些控件赋值,将属性和控件关联起来。在构造函数获得在xml中自定义的属性,并把这些属性值赋给这些控件 (1)通过TypeArray这个数据结构,来存储从xml中获取的自定义属性的值 TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.Topbar); 其中obtainStyledAttributes(AttributeSet set, int[] attrs)第二个参数为xml定义的属性集合,所以为R.styleable.Topbar 通过这种方法,把在xml自定义的属性值映射到所定义的自定义属性中去,然后返回TypeArray变量。 TypedArray类似于Map键值对,这个变量包含了所有属性和值的映射。 (2)从TypedArray中获取属性值 leftTextColor = ta.getColor(R.styleable.Topbar_leftTextColor, 0); 这里是通过下划线的方式连接Topbar自定义属性和属性的名字,得到一个引用名。后面0是默认值。 通过这种方法就从TypedArray中取出所有的属性值,并赋值给相应的变量。 (3)实例化控件 leftButton = new Button(context); rightButton = new Button(context); tvTitle = new TextView(context); (4)将前面获得属性值赋给这些控件 leftButton.setTextColor(leftTextColor); leftButton.setBackground(leftBackground); leftButton.setText(leftText);查看全部
-
重写控件,满足要求 1. 自定义一个Topbar类View继承自RelativeLayout 如果Topbar UI模板(View)需要自定义属性,其构造函数就要使用public Topbar(Context context, AttributeSet attrs) 2. 定义UI模板中的三个控件,声明要使用的属性 private Button leftButton, rightButton; private TextView tvTitle; 3. 给这些控件赋值,将属性和控件关联起来。在构造函数获得在xml中自定义的属性,并把这些属性值赋给这些控件 (1)通过TypeArray这个数据结构,来存储从xml中获取的自定义属性的值 TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.Topbar); 其中obtainStyledAttributes(AttributeSet set, int[] attrs)第二个参数为xml定义的属性集合,所以为R.styleable.Topbar 通过这种方法,把在xml自定义的属性值映射到所定义的自定义属性中去,然后返回TypeArray变量。 TypedArray类似于Map键值对,这个变量包含了所有属性和值的映射。 (2)从TypedArray中获取属性值 leftTextColor = ta.getColor(R.styleable.Topbar_leftTextColor, 0); 这里是通过下划线的方式连接Topbar自定义属性和属性的名字,得到一个引用名。后面0是默认值。 通过这种方法就从TypedArray中取出所有的属性值,并赋值给相应的变量。 (3)实例化控件 leftButton = new Button(context); rightButton = new Button(context); tvTitle = new TextView(context); (4)将前面获得属性值赋给这些控件 leftButton.setTextColor(leftTextColor); leftButton.setBackground(leftBackground); leftButton.setText(leftText);查看全部
-
TypedArray.recycle(); 资源的回收、查看全部
-
系统怎么样定义一个控件: 1.在atts.xml中定义组件属性 2.重写控件,满足要求 3.在xml中或是java代码中使用控件查看全部
-
attrs.xml查看全部
-
界面引入查看全部
举报
0/150
提交
取消