我开发了一个非常庞大的应用程序,现在需要为应用程序中的所有控件使用自定义字体。因此,我想知道更好的一次性更改字体的方法。该应用程序有100多个XML布局,我不能将所有控件更改为带有自定义字体的自定义组件。请提供一种不需更改所有XML控件而能更改字体的解决方案。
我开发了一个非常庞大的应用程序,现在需要为应用程序中的所有控件使用自定义字体。因此,我想知道更好的一次性更改字体的方法。该应用程序有100多个XML布局,我不能将所有控件更改为带有自定义字体的自定义组件。请提供一种不需更改所有XML控件而能更改字体的解决方案。
可以像这样做
pacage com.prac;
class MyFontedTextView extends TextView {
public FontedTextView(Context context) {
super(context);
init();
}
public FontedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public FontedTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
String otfName = "MyCustomOtfFileWhichIPutInAssetsFolder.otf";
Typeface font = Typeface.createFromAsset(context.getAssets(), otfName);
this.setTypeface(font);
}
}
现在将此替换为来自TextView的xml文件中的所有内容
<com.prac.MyFontedTextView .... instead of <TextView
你需要对这个更改进行全面操作才能应用
对于按钮文本的情况也是如此。按钮也是TextView的子类,因此同样适用于按钮。
希望这可以帮助你找到解决方案。
find . -name "*xml" | xargs sed -i 's/<TextView/<com.prac.MyFontedTextView'
- JohnnyLambada