fontFeatureSettings=smcp не работает в Android
Мне нужно показать текст SmallCaps в TextView. Я пытаюсь использовать приведенный ниже код:
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFeatureSettings="smcp"
android:textColor="@color/black"
android:textSize="16sp"
android:text="TEXT" />
Но он просто показывает мне обычный текст, без эффекта SmallCaps. Еще пытаюсь программно установить (text1.fontFeatureSettings = "smcp"
), но тоже безуспешно.
Как сделать текст SmallCaps в Android? Почему не работает fontFeatureSettings?
2 ответа
Чтобы эта функция работала, у вас должен быть шрифт, который на самом деле имеет символы маленьких заглавных букв - таким образом, чтобы он работал, передайте шрифт с маленькими заглавными буквами через app:fontFamily(android:fontFamily)
например Aller Display
, а затем используйте android:fontFeatureSettings="smcp"
чтобы сделать это маленькими заглавными буквами.
Надеюсь, это поможет
редактировать
как @Cliabhach указал в комментариях, в коде это будет выглядеть примерно так
text1.typeface = resources.getFont(R.font.Aller_Display)
text1.fontFeatureSettings = "smcp"
Edit2
Имейте в видуДля тех, кто не знает - маленькие заглавные буквы работают только со строчными буквами.
Как вы используете TextView
поэтому я думаю, вы устанавливаете значение во время выполнения, например, говорит, что у вас есть String
объект, который будет установлен в TextView
подобно:
textView.setText(someStringObj);
Таким образом, вы можете легко установить его как нижний регистр, добавив:
textView.setText(someStringObj.toLowerCase());