2.3、布局文件中使用
三、AttributeSet与TypedArray
四、declare-styleable
一、引言
====
对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现:
-
自定义一个CustomView(extends View )类
-
编写values/attrs.xml,在其中编写styleable和item等标签元素
-
在布局文件中CustomView使用自定义的属性(注意namespace)
-
在CustomView的构造方法中通过TypedArray获取
那么,我有几个问题:
-
以上步骤是如何奏效的?
-
styleable 的含义是什么?可以不写嘛?我自定义属性,我声明属性就好了,为什么一定要写个styleable呢?
-
如果系统中已经有了语义比较明确的属性,我可以直接使用嘛?
-
构造方法中的有个参数叫做AttributeSet
-
(eg: MyTextView(Context context, AttributeSet attrs) )这个参数看名字就知道包含的是参数的数组,那么我能不能通过它去获取我的自定义属性呢?
-
TypedArray是什么鬼?从哪冒出来的,就要我去使用?
恩,针对这几个问题,大家可以考虑下,如何回答呢?还是说:老子会背上述4个步骤就够了~~
二、常见的例子
=======
接下来通过例子来回答上述问题,问题的回答顺序不定~~大家先看一个常见的例子,即上述几个步骤的代码化。
2.1、自定义属性的声明文件
<?xml version="1.0" encoding="utf-8"?>
2.2、自定义View类
package com.example.test;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
public class MyTextView extends View {
private st