当我在android studio中使用自定义textview时发生错误

时间:2017-08-31 05:55:29

标签: java android

下面的代码是使用投石机字体的自定义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时会出现通胀错误。 我在资产/字体文件夹中包含了投石机字体。

2 个答案:

答案 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" />