下面的代码是使用投石机字体的自定义textview类。
public class TrebuchetTextView extends TextView {
public TrebuchetTextView(Context context) {
super(context);
init();
}
public TrebuchetTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public TrebuchetTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
if (!isInEditMode()) {
final Typeface typeface = Typeface.createFromAsset(getContext().getAssets(), getContext().getString(R.string.normal_font_path));
setTypeface(typeface);
}
}
}
这在其他应用中使用,效果很好。
但是当我在我的应用程序中使用自定义textview时会出现通胀错误。 我在资产/字体文件夹中包含了投石机字体。
答案 0 :(得分:0)
在layout.xml文件中尝试使用其完整包路径的自定义m_strikes
,如下所示
m_time
并在自定义文字视图中更改此行
textview
答案 1 :(得分:0)
请尝试以下自定义textview
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
public class FontTextView extends TextView {
public FontTextView(Context context) {
super(context);
Typeface face=Typeface.createFromAsset(context.getAssets(), "Helvetica_Neue.ttf");
this.setTypeface(face);
}
public FontTextView(Context context, AttributeSet attrs) {
super(context, attrs);
Typeface face=Typeface.createFromAsset(context.getAssets(), "Helvetica_Neue.ttf");
this.setTypeface(face);
}
public FontTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
Typeface face=Typeface.createFromAsset(context.getAssets(), "Helvetica_Neue.ttf");
this.setTypeface(face);
}
protected void onDraw (Canvas canvas) {
super.onDraw(canvas);
}
}
和xml:
<com.util.FontTextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/accountInfoText"
android:textColor="#727272"
android:textSize="18dp" />