Интересно, каким будет лучший способ назначить гарнитуру шрифта для представления TextView? Лучше ли создать собственный класс TextView, который расширяет TextView, или использовать атрибут setTypeFace?
Лучший способ назначить шрифт шрифта для просмотра текста
Ответы (3)
создайте папку assets (src/main/assets/ в AndroidStudio) и создайте подпапку fonts, скопируйте в них свои шрифты
Typeface tf = Typeface.createFromAsset(getAssets(),
"fonts/youi.ttf");
TextView tv = (TextView) findViewById(R.id.edit_t);
tv.setTypeface(tf);
person
Nikhil Verma
schedule
07.04.2015
Я знаю это. Учтите, что у меня есть XML-файл элемента ListView, и внутри есть TextViews. И я хочу использовать пользовательские шрифты для каждого TextView, должен ли я отправлять шрифт в качестве входных данных для пользовательского класса адаптера, чтобы затем я мог назначить его с помощью кода, который вы упомянули?
- person Hamidreza; 07.04.2015
Да, назначать шрифты в getView().
- person Nikhil Verma; 07.04.2015
И если у меня есть более одного типа шрифта, должен ли я отправить список шрифтов? Это лучший и самый простой способ?
- person Hamidreza; 07.04.2015
Будьте осторожны, так как существует известная проблема с
createFromAsset
. Вместо того, чтобы поддерживать свою ссылку, он пытается воссоздать шрифт при каждом вызове. Вероятно, вам следует кэшировать его, если вы планируете часто его использовать.
- person Alex Kolpa; 07.04.2015
@alex-kolpa Что именно ты имеешь в виду? Неправильно ли это в основной деятельности и отправлять список шрифтов адаптеру? fontList = новый ArrayList‹Typeface›(); fontList.add(Typeface.createFromAsset(getAssets(), fonts/gautami.ttf)); fontList.add(Typeface.createFromAsset(getAssets(), fonts/clash.ttf)); fontList.add(Typeface.createFromAsset(getAssets(), fonts/tekton_pro.otf));
- person Hamidreza; 07.04.2015
Нет, в данном случае это работает нормально, поскольку вы создаете каждый шрифт только один раз. Но у меня есть несколько приложений, в которых я повсеместно использую пользовательские шрифты. В этих случаях я использую это решение
- person Alex Kolpa; 07.04.2015
Я знаю. Это хороший ответ. Но я хотел бы услышать больше от разных пользователей. Больше мнений, лучший результат.
- person Hamidreza; 07.04.2015
Вот версия kotlin для этого
val openSansLight: Typeface by lazy { Typeface.createFromAsset(context, "font/os_light.ttf"); }
textView.typeface = openSansLight
person
Kavin Varnan
schedule
15.11.2018
Шрифт теперь является частью ресурса приложения! Теперь вы можете использовать атрибут семейства шрифтов для изменения шрифта в xml. Создайте каталог ресурсов шрифта, и вы можете поместить туда файлы шрифтов.
android:fontFamily="@font/lobster"
Использование кода
val typeface = resources.getFont(R.font.myfont)
textView.typeface = typeface
См. официальную документацию. для большего
person
Samuel Robert
schedule
15.11.2018