3

BebasNeue.otf文字列変数に設定したいカスタムフォントがあります。私はたくさん検索しましたが、解決策はありませんでした。

のようなビューでカスタム フォントを設定できることはわかっていますtextView.setTypeface(font);Stringsしかし今、私は以下のようにフォントを設定したいと思います:

String Name,Contact;
 Name="ABCD";
 Contact="97696538";

このすべての文字列にはいくつかの値が含まれています。今、私は以下にあるすべての文字列にカスタムフォントを設定したい:

 Typeface fontString = Typeface.createFromAsset(m_context.getAssets(),
            "BebasNeue.otf");

上記のフォントを Strings 変数に設定する方法を教えてください。

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

4

から提供されたコメントの助けを借りて、以下のように問題を解決しました@ASP

 Typeface fontString = Typeface.createFromAsset(m_context.getAssets(),
                "BebasNeue.otf");
   Paint paint = new Paint();
   paint.setTypeface(fontString);
   mCanvas.drawText("ID :" + m_sId, dw - 450, dh - 350, paint);

私を助けてくれてありがとう。

于 2013-11-22T11:13:11.543 に答える
0

多分これが役立つかもしれません。

public class TypefaceSpan extends MetricAffectingSpan {
/** An <code>LruCache</code> for previously loaded typefaces. */
private static LruCache<String, Typeface> sTypefaceCache = new LruCache<String, Typeface>(
        12);

private Typeface mTypeface;

/**
 * Load the {@link Typeface} and apply to a {@link Spannable}.
 */
public TypefaceSpan(Context context, String typefaceName) {
    mTypeface = sTypefaceCache.get(typefaceName);

    if (mTypeface == null) {
        mTypeface = Typeface.createFromAsset(context.getApplicationContext().getAssets(), 
                                             String.format("%s", typefaceName));

        // Cache the loaded Typeface
        sTypefaceCache.put(typefaceName, mTypeface);
    }
}

@Override
public void updateMeasureState(TextPaint p) {
    p.setTypeface(mTypeface);

    // Note: This flag is required for proper typeface rendering
    p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}

@Override
public void updateDrawState(TextPaint tp) {
    tp.setTypeface(mTypeface);

    // Note: This flag is required for proper typeface rendering
    tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}
}

そして、このように使用します

SpannableString s = new SpannableString("My Title");
s.setSpan(new TypefaceSpan(this, "MyTypeface.otf"), 0, s.length(),
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
于 2013-12-02T13:02:35.030 に答える