Stillerini değiştirme konusunda sayısız deneme ve hata deniyorum, ancak araç çubuğu başlığının yazı tipini değiştiremiyorum (Kaligrafi kitaplığını da kullanıyorum) ve araç çubuğunun özelliğinin araç çubuğunda mı yoksa CollapsingToolbarLayout'ta mı olduğundan emin değilim. . Herhangi bir yardım için teşekkür ederiz, teşekkürler!CollapsingToolbarLayout öğesindeki araç çubuğu başlığının yazı tipi nasıl değiştirilir?
cevap
Bu bu durumda ben Arial kullanmak istiyorum, özel TypefaceSpan sınıfını kullanarak ve Aktivite böyle uygulayarak yapabilirsiniz:
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);
Bu sınıfa kopyalamanız gerekir ve uygulamanıza kaydedin ve yazı tipi dosyasını varlıklar/yazı tipleri dizinine koyun. (Bu eğitimde olduğu gibi: http://www.viralandroid.com/2016/01/how-to-use-custom-fonts-in-android-application.html) Dosyayı belleğe yükleyecek ve bu yazı tipiyle örneklerde kullanacaktır. 1 Normal (Droid Sans), 2 serif (Droid Serif), 3 Monospace (Droid Sans Mono): Eğer android varsayılan yazı tiplerinden birini kullanmak isterseniz
/**
* 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);
}
}
, sadece üç var.
Umut eder!
Ancak, (bu "FuturaPTCondMedium.otf") s.setSpan'dan (yeni TypefaceSpan (bu, "FuturaPTCondMedium.otf")) , 0, s.length(), yazıcının TypefaceSpan – brettbrdls
için çözülemeyeceğini söyler Sınıf genel sınıfını kopyaladınız mı TypefaceSpan extend MetricAffectingSpan {yayınladım? –
Yup, bir sınıf oluşturdum. – brettbrdls
'Çok sayıda deneme ve hata' Lütfen numaralandırın, gereksiz yere yaptığınız şeyi tekrarlamayız. –
Umut, bu soruların bir cevabıdır: http://stackoverflow.com/questions/31738831/how-to-change-collapsingtoolbarlayout-typeface-and-size –
Bunu bu sorunun cevabına gönderme: http://stackoverflow.com/questions/36560292/art-to-height-font-size-of-collapsingtoolbarlayout – brettbrdls