2016-04-07 17 views
0

私はそのスタイルを変更する際に多くの試行錯誤を試みてきましたが、ツールバータイトルのフォントの変更(書道ライブラリも使用しています)を取得できず、ツールバータイトルのプロパティがツールバーにあるのかCollapsingToolbarLayout 。 ご協力いただきありがとうございます。CollapsingToolbarLayoutでツールバーのタイトルのフォントを変更するにはどうすればよいですか?

enter image description here

+0

「多数の試行錯誤」あなたが不必要にしたことを繰り返さないように列挙してください。 –

+0

これは重複した質問です... http://stackoverflow.com/questions/31738831/how-to-change-collapsingtoolbarlayout-typeface-and-size –

+0

この質問の回答を参照してください:http://stackoverflow.com/question/36560292/font-size-of-in-collapsingtoolbarlayout – brettbrdls

答えて

1

カスタムTypefaceSpanクラスを使用して、あなたの活動でこのようにそれを適用し、この場合には、私はゴシックを使用するこれを行うことができます。

SpannableString s = new SpannableString("CANTEEN"); 
s.setSpan(new TypefaceSpan(this, "Arial.otf"), 0, s.length(), 
     Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

// Update the action bar title with the TypefaceSpan instance 
ActionBar actionBar = getActionBar(); 
actionBar.setTitle(s); 

あなたは、このクラスをコピーする必要があり、アプリに保存し、フォントファイルをassets/fontsディレクトリに配置します。 (このチュートリアルのとおり:http://www.viralandroid.com/2016/01/how-to-use-custom-fonts-in-android-application.html) ファイルをメモリにロードし、そのフォントタイプのインスタンスで使用します。

/** 
* Style a {@link Spannable} with a custom {@link Typeface}. 
* 
* @author Tristan Waddington 
*/ 
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); 
    } 
} 

あなたはアンドロイドのデフォルトのフォントのいずれかを使用したい場合は、あなただけの3を持っている: 1ノーマル(ドロイドなき)、 2セリフ(ドロイドセリフ)、 3等幅フォント(ドロイドなきモノ)。

希望すると助かります!

+0

しかし、(これは "FuturaPTCondMedium.otf")、s.setSpan(新しいTypefaceSpan(this、 "FuturaPTCondMedium.otf") 、0、s.length()は、TypefaceSpanのコンストラクタを解決できないと言います – brettbrdls

+0

クラスpublicクラスをコピーしましたか?TypefaceSpan extends MetricAffectingSpan {投稿したものは –

+0

です。 – brettbrdls

関連する問題