1

カスタム フォントに問題があります。私は次のように変更します:

@Override
protected void onFinishInflate() {
    super.onFinishInflate();

    mTimeDisplay = (TextView) findViewById(R.id.timeDisplay);
    Typeface typeface = Typeface.createFromAsset(getAssets(),
            "Fonts/Roboto-Light.ttf");
    mTimeDisplay.setTypeface(typeface);
    mAmPm = new AmPm(this);
    mCalendar = Calendar.getInstance();

    setDateFormat();
}

しかし、私はエラーがあります:The method getAssets() is undefined for the type DigitalClock

4

2 に答える 2

5

をオーバーライドしているので、ある種onFinishInflateの a を拡張しているようです。View

これを試して:

Typeface typeface = Typeface.createFromAsset(getContext().getAssets(),
        "Fonts/Roboto-Light.ttf");

...それがうまくいかない場合:

Typeface typeface = Typeface.createFromAsset(mTimeDisplay.getContext().getAssets(),
        "Fonts/Roboto-Light.ttf");
于 2012-10-01T19:34:23.557 に答える
2

context.getAssets() を使用してみてください

フィールドの作成: コンテキスト context;

public class DigitalClock extends LinearLayout {

Context context;

public DigitalClock(Context context, AttributeSet attrs, int defStyle) 
{

    super(context, attrs, defStyle);
    this.context = context;

}

}

次に、コンテキスト経由で getAssets() にアクセスできるようになります

于 2012-10-01T19:33:57.427 に答える