由于 Android 在它的某些视图上缺少一些功能(比如使用不同的字体,或者允许使用 dp 单位设置阴影),我不得不扩展我想要的每个视图并向它们添加一些代码,但是因为有很多,实际上有太多相同的代码。
我怎样才能为我希望支持的每个视图实现最少的代码编写,以便大部分代码都在一个单独的类中?
甚至可以使装饰器附加到其目标视图的特定方法吗?
或者也许我应该添加有关如何使用装饰器的说明,以及在我需要附加到的每个方法上调用哪些函数?
作为代码示例,这是我用于设置字体的代码:
@Override
public void setTypeface(final Typeface tf, final int style) {
if (isInEditMode()) {
super.setTypeface(tf, style);
return;
}
if((style&Typeface.BOLD)!=0)
super.setTypeface(FontLoader.getTypeFace(getContext(), FontType.ROBOTO_BOLD));
else
super.setTypeface(FontLoader.getTypeFace(getContext(), FontType.ROBOTO_LIGHT));
}
关于阴影功能,我将 [this link][1] 与下一个代码一起使用:
@Override
protected void drawableStateChanged() {
super.drawableStateChanged();
updateShadowColor();
}