Ошибка в настройке пользовательского шрифта - Android - PullRequest
1 голос
/ 15 марта 2012

Для разрабатываемого виджета Android я пытаюсь использовать собственный шрифт. Я просмотрел некоторые учебники в Интернете и нашел несколько способов сделать это. Я выбрал один и попытался реализовать его, но я получаю сообщение об ошибке и не могу понять, почему. Техника использует отдельный класс (из которого я разместил код ниже), чтобы установить шрифт. В этом коде я получаю сообщение об ошибке в строке customFont в setCustomFont. Это говорит о том, что customFont не может быть преобразован в переменную. Кто-нибудь может мне помочь, почему это происходит?

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;

public class TypefacedTextView extends TextView {
private static final String TAG = "TextView";

public TypefacedTextView(Context context) {
    super(context);
}

public TypefacedTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    setCustomFont(context, attrs);
}

public TypefacedTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setCustomFont(context, attrs);
}

private void setCustomFont(Context ctx, AttributeSet attrs) {
    TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TypefacedTextView);
    String customFontl = a.getString(R.styleable.TypefacedTextView_typeface);
    setCustomFont(ctx, customFont); //                      get an error here
    a.recycle();
}

public boolean setCustomFont(Context ctx, String asset) {
    Typeface tf = null;
    try {
    tf = Typeface.createFromAsset(ctx.getAssets(), asset);  
    } catch (Exception e) {
        Log.e(TAG, "Could not get typeface: " + e.getMessage());
        return false;
    }

    setTypeface(tf);  
    return true;
}

}

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

я пробовал, может, это поможет вам в этом коде, мой шрифт находится в папке asset / fonts, если он только в ассемблере, а не в шрифтах кода /

  public class MyTextView extends TextView{

 public MyTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
        rotate();
    }

    public MyTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
        rotate();
    }

    public MyTextView(Context context) {
        super(context);
        init();
        rotate();
    }

    private void rotate() {
        // TODO Auto-generated method stub
        setSelected(true);
    }

    private void init() {
        if (!isInEditMode()) {
            Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/TrajanPro-Regular.otf");
            setTypeface(tf);
        }
    }


}
0 голосов
/ 15 марта 2012
 String customFontl = a.getString(R.styleable.TypefacedTextView_typeface);
 setCustomFont(ctx, customFont); //                      get an error here

Ваша переменная объявлена ​​как customFontl (примечание окончательно l), и вы пытаетесь использовать ее как customFont.Я предполагаю, что ошибка в том, что customFont не определено или что-то в этом роде, как это имеет место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...