2011-07-26 3 views
0

Dans mon application, je veux mettre en forme un texte avec autant de type de devise. Tels que $ pour USD, đ pour VND, £ pour GBP, € pour EUR, ... Un certain code de devise ne peut pas être montré dans le bon sens quand je parse JPY (Japon), CNY (Chine), KPW (Corée), ... à cause de l'absence de police appropriée.Auto détecter et installer la police de texte dans Android

Comment puis-je faire en sorte que mon application affiche tout le code de devise d'un téléphone Android? Ou, est-il possible de détecter automatiquement la police de texte et demander à l'utilisateur de l'installer?

Répondre

0

Vous pouvez copier tous les symboles dans votre ressource String, puis vous pouvez accéder à ce symbole par le nom de l'élément dans une ressource String.

ou vous pouvez faire une fonction comme

public static String getCurrencySymbol(Context context, String currency){ 
     if(currency.equalsIgnoreCase("USD")) return "$"; 
     if(currency.equalsIgnoreCase("GBP")) return "£"; 
     return ""; 
    } 
+0

Désolé Jackal, peut-être que vous ne comprenez pas ma question. Dans android, nous pouvons utiliser NumberFormat.getCurrencyInstance(). SetCurrency(); pour formater un prix avec la devise spécifiée. Mais certains symboles monétaires ne peuvent pas être affichés correctement. (comme le symbole monétaire de la Chine, la Corée, le Japon, ...) Et je trouve un moyen de détecter une police pour afficher ce symbole. –

0

Je crains qu'il n'y ait aucun moyen de le faire automatiquement. Ce que vous pouvez faire est d'expérimenter avec différentes polices et enregistrer celles dont vous avez besoin dans assets/fonts de votre projet Android. Dans votre code, vous pouvez vérifier la valeur Unicode du symbole monétaire, et si elle n'est pas prise en charge ou appropriée dans la police en cours, passez à la police appropriée qui la prend en charge.

+0

Merci, mais il y a un total de> 170 types de devises. Donc, je pense que votre solution n'est peut-être pas la meilleure. –

+0

Cela fonctionne, j'ai également utilisé la méthode comme cela dans mon projet, mais il y a un problème si un seul champ de texte contient plusieurs langues, est-il possible d'appliquer plusieurs polices en même temps à un seul champ de texte? utiliser? Si non alors comment faire android appliquer la police à la sous-chaîne, pas au contenu entier d'un TextField? – Marek

Questions connexes