由于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();
}
答案 0 :(得分:0)
我不确定这可以为您提供帮助,但我使用以下代码才能在Button
上创建自定义日期显示(因此也应该可以在TextView
上):
String styledText = "" +
"<font color='#000000'>" + month + "</font>.<font color='#ffffff'>" + day + "</font>" +
"<br />" +
"<small><font color='#666666'>" + year + "</font></small>";
Button dateBT = (Button) mi.getActionView();
dateBT.setText(Html.fromHtml(styledText));
它允许您动态使用HTML。