也许火星了
在自定义控件时有时会支持多种类型format,那么我们要怎么取值呢?
有什么方法能判断此时调用TypedArray#getFloat还是TypedArray#getDimensionPixelOffset吗?因为在xml中传入的类型我们并不知道,贸然取值程序会报错,下面贴上正确姿势:
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CompatTextView);
TypedValue value = new TypedValue();
boolean has = array.getValue(R.styleable.CompatTextView_ctv_drawableWidth, value);
if (has) {
if (value.type == TypedValue.TYPE_FLOAT) {
//浮点类型
} else if (value.type == TypedValue.TYPE_DIMENSION) {
//Dimen类型
}
} else {
//未传入
}
array.recycle();
说:“必有童女怀孕生子;人要称他的名为以马内利。”(以马内利翻出来就是“ 神与我们同在”。) (马太福音 1:23 和合本)