Я разрабатываю приложение для виджетов Android, предназначенное для пользователей выше Lollipop (Android 5.0).
Мне приходится использовать шрифт под названием "noto sans"(https://www.google. com/get/noto/#/) в моем приложении по некоторым причинам.
Я слышал, что он содержится в Lollipop, но я не знаю, как использовать его в xml.
Кто-нибудь знает об этом?
2 ответа
Нет, вы не можете использовать пользовательские шрифты в файле макета (XML). Вы должны использовать пользовательские шрифты программно, как показано ниже.
String fontPath = "fonts/calibrib.ttf";
// Loading Font Face
Typeface tf = Typeface.createFromAsset(mContext.getAssets(), fontPath);
TextView txtView = new TextView(this);
txtView.setTypeface(tf);
Поместите свой шрифт в папку с ресурсами. Вот для чего работает приведенный выше код.
Вы можете создать свой собственный TextView, переопределив TextView следующим образом, вам нужно поместить шрифт в папку с ресурсами:
public class MyTextView extends TextView {
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setType(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setType(context);
}
public MyTextView(Context context) {
super(context);
setType(context);
}
private void setType(Context context){
this.setTypeface(Typeface.createFromAsset(context.getAssets(),
"foo.ttf"));
this.setShadowLayer(1.5f, 5, 5, getContext().getResources().getColor(R.color.black_shadow));
}
}
И используйте это так:
<com.your.project.package.MyTextView
android:id="@+id/oppinfo_mtv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="Player 1"
/>
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.