Автоматическое определение и установка текстового шрифта в Android

В моем приложении я хочу отформатировать текст как можно больше валют. Например, $ для долларов США, đ для VND, £ для GBP, € для EUR,... Некоторые коды валют не могут отображаться правильно, когда я анализирую JPY (Япония), CNY (Китай), KPW (Корея). .. из-за отсутствия соответствующего шрифта.

Как я могу заставить свое приложение отображать весь код валюты на любом телефоне Android? Или есть ли способ автоматически определить текстовый шрифт и попросить пользователя установить его?


person Nguyen Minh Binh    schedule 26.07.2011    source источник


Ответы (2)


Вы можете скопировать все символы в свой ресурс String, а затем получить доступ к этому символу по имени элемента в ресурсе String.

или вы можете сделать такую ​​​​функцию, как

public static String getCurrencySymbol(Context context, String currency){
        if(currency.equalsIgnoreCase("USD")) return "$";
        if(currency.equalsIgnoreCase("GBP")) return "£";
        return "";
    }
person Dharmendra    schedule 26.07.2011
comment
Извините, Шакал, возможно, вы не понимаете мой вопрос. В Android мы можем использовать NumberFormat.getCurrencyInstance().setCurrency(); для форматирования цены в указанной валюте. Но некоторые символы валюты не могут отображаться правильно. (например, символ валюты Китая, Кореи, Японии,...) И я нахожу способ определить шрифт для отображения этого символа. - person Nguyen Minh Binh; 26.07.2011

Боюсь, что нет никакого способа сделать это автоматически. Что вы можете сделать, так это поэкспериментировать с различными шрифтами и сохранить те, которые вам нужны, в assets/fonts вашего проекта Android. В своем коде вы можете проверить значение Unicode символа валюты и, если оно не поддерживается или не подходит для текущего шрифта, переключиться на соответствующий шрифт, который его поддерживает.

person sparkymat    schedule 26.07.2011
comment
Спасибо, но всего 170 типов валют. Поэтому я думаю, что ваше решение может быть не лучшим. - person Nguyen Minh Binh; 26.07.2011
comment
Это работает, я также использовал такой метод в своем проекте, однако есть проблема, если одно текстовое поле содержит несколько языков, есть ли способ применить несколько шрифтов одновременно к одному текстовому полю и заставить Android автоматически определять, какой из них для использовать? Если нет, то как заставить Android применять шрифт к подстроке, а не ко всему содержимому TextField? - person Marek; 30.10.2015