У меня есть button
, созданный с использованием виджетов Android. Я хочу, чтобы шрифт текста кнопки был Helv Neue 67 Med Cond
. Как получить этот шрифт и установить его в текст кнопки в файле макета Android?
Настройка текстового шрифта кнопки в android
Ответ 1
Сначала вам нужно поместить файл ttf в папку с ресурсами, а затем вы можете использовать приведенный ниже код для установки пользовательского шрифта в TextView, так же, как вы можете сделать для кнопки:
TextView txt = (TextView) findViewById(R.id.custom_font);
Typeface font = Typeface.createFromAsset(getAssets(), "Helv Neue 67 Med Cond.ttf");
txt.setTypeface(font);
Ответ 2
Я думаю, вы, возможно, уже нашли ответ, но если нет (и для других разработчиков), вы можете сделать это следующим образом:
1. Вы хотите сохранить "Helv Neue 67 Med Cond.ttf" в папке с ресурсами. затем
Для TextView
TextView txt = (TextView) findViewById(R.id.custom_font);
Typeface typeface = Typeface.createFromAsset(getAssets(), "Helv Neue 67 Med Cond.ttf");
txt.setTypeface(typeface);
Для кнопки
Button n=(Button) findViewById(R.id.button1);
Typeface typeface = Typeface.createFromAsset(getAssets(), "Helv Neue 67 Med Cond.ttf");
n.setText("show");
n.setTypeface(typeface);
Ответ 3
Android поставляется с тремя шрифтами (Sans, Serif, Monospace)
, которые можно использовать с помощью android:typeface="FONT_NAME"
.
Для использования пользовательского шрифта вы должны использовать код, например
TextView txt = (TextView) findViewById(R.id.custom_font);
Typeface typeface = Typeface.createFromAsset(getAssets(), "Helv Neue 67 Med Cond.ttf");
txt.setTypeface(typeface);
Некоторые похожие вопросы: Пользовательские шрифты в Android и Android - Использование пользовательского шрифта.
Ответ 4
Если вы планируете добавить один и тот же шрифт к нескольким кнопкам, я предлагаю вам пройти весь путь и реализовать кнопку подкласса:
public class ButtonPlus extends Button {
public ButtonPlus(Context context) {
super(context);
applyCustomFont(context);
}
public ButtonPlus(Context context, AttributeSet attrs) {
super(context, attrs);
applyCustomFont(context);
}
public ButtonPlus(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
applyCustomFont(context);
}
private void applyCustomFont(Context context) {
Typeface customFont = FontCache.getTypeface("fonts/candy.ttf", context);
setTypeface(customFont);
}
}
И вот FontCache, чтобы уменьшить использование памяти на более старых устройствах:
public class FontCache {
private static Hashtable<String, Typeface> fontCache = new Hashtable<>();
public static Typeface getTypeface(String name, Context context) {
Typeface tf = fontCache.get(name);
if(tf == null) {
try {
tf = Typeface.createFromAsset(context.getAssets(), name);
}
catch (Exception e) {
return null;
}
fontCache.put(name, tf);
}
return tf;
}
}
И, наконец, пример использования в макете:
<com.my.package.buttons.ButtonPlus
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_sometext"/>
Это может показаться ужасной работой, но вы поблагодарите меня, как только у вас будет несколько кнопок кнопок и текстовых полей, на которые вы хотите поменять шрифт.
Ответ 5
Вы можете использовать:
android:typeface="yourfont"
Ответ 6
Вам нужно загрузить шрифт Helv Neue 67 Med Cond
и сохранить его в папке с ресурсами. пусть загруженный шрифт myfont.ttf
Используйте следующий код, чтобы установить шрифт
Typeface tf = Typeface.createFromAsset(getAssets(), "myfont.ttf");
TextView TextViewWelcome = (TextView)findViewById(R.id.textViewWelcome);
TextViewWelcome.setTypeface(tf);
Спасибо Дипак
Ответ 7
Это хорошая статья, я использовал ее несколько раз и работает: http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/