我有一些小部件,我正在尝试为它们设置自定义字体。这是我简单的xml ui:
xmlns:app="http://schemas.android.com/apk/res-auto">
<ir.pishguy.makumarket.app.Libraries.internal.MDButton
app:mdbutton_font="bnazanin"/>
</ir.pishguy.makumarket.app.Libraries.internal.MDButton>
这是我的特性:
<declare-styleable name="MDButton">
<attr name="mdbutton_font">
<enum name="consolas" value="0"/>
<enum name="times" value="1"/>
</attr>
</declare-styleable>
这是我自定义的MDButton类:
public MDButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MDButton_mdbutton_font);
String str = a.getString(R.styleable.MDButton_mdbutton_font);
switch (Integer.parseInt(str)) {
case 0:
str = "fonts/consolas.ttf";
break;
case 1:
str = "fonts/times.ttf";
break;
}
setTypeface(FontManager.getInstance(context).loadFont(str));
}
我在中收到此错误R.styleable.MDButton_mdbutton_font
:
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MDButton_mdbutton_font,defStyleAttr,0);
错误:
Error:(37, 73) error: incompatible types: int cannot be converted to int[]
并将其更改为:
new int[]{R.styleable.MDButton_mdbutton_font}
我得到NULL
了str
。如何在Web中设置自定义字体文档。我没有看到任何文件,对这个问题,并在所有的文件我没有看到使用int[]
了R.styleable.MDButton_mdbutton_font
。我该如何解决这个问题?
您正在使用属性的名称,而不是可样式化的名称。应该是这样的:
context.obtainStyledAttributes(attrs, R.styleable.MDButton, defStyleAttr, 0);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句