Специальные символы не отображаются в Android Api уровня 19

Я создаю приложение на языке nepali/hindi. Но эти тексты не поддерживаются / не отображаются на устройствах с уровнем API 19. Он не работает в обоих направлениях, т.е. когда я пытаюсь установить текст напрямую с xml или программно.

txt2.setText("कर्मचारी");

Я даже пробовал вызвать строку, поставив ее на string.xml, все равно не работает.

txt2.setText(getApplicationContext().getString(R.string.myCharacter));

текст не появляется. Кто-нибудь может мне помочь?

используйте utf8, и, возможно, вам также понадобится вспомогательный шрифт

Raghunandan 18.12.2018 07:35

Есть ли в вашем шрифте эти символы?

Gabe Sechan 18.12.2018 08:02

getApplicationContext (). getResources (). getString (R.string.my‌ Character) вы можете попробовать это

Pratik18 18.12.2018 08:53

Ваше тестовое устройство должно поддерживать хинди / непали в качестве языка отображения в настройках телефона, т. Е. Настройки -> Язык.

maveroid 18.12.2018 09:04
0
4
117
3

Ответы 3

1. Измените шрифт по умолчанию, добавив ресурс шрифта (дополнительная информация здесь) и в style.xml в разделе AppTheme добавьте этот шрифт. style.xml

<!-- Base application theme. -->
<style name = "AppTheme" parent = "Theme.AppCompat.Light.DarkActionBar">
    <item name = "colorPrimary">@color/colorPrimary</item>
    <item name = "colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name = "colorAccent">@color/colorAccent</item>
    <item name = "android:fontFamily">@font/fontName</item>
</style>

2. Если это не сработает, используйте реальное устройство вместо эмулятора.

Ваше тестовое устройство должно поддерживать хинди или непали (шрифт) в качестве языка отображения в настройках телефона, т. Е. «Настройки» -> «Язык и ввод» -> «Изменить язык».

Спасибо всем за ответ, ребята. Однако я нашла подходящую для себя. Я создал папку с активами> Шрифт и вставил в нее необходимый мне ttf-файл. И после этого просто написал необходимый текст unicod ein xml. Затем я назвал его, используя шрифт как

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/aparaj.ttf");
    txt2.setTypeface(typeface);

Это сработало для меня так, как я хотел.

Другие вопросы по теме