Definir o símbolo da Rúpia Indiana na visualização de texto


90

Estou desenvolvendo um aplicativo. E preciso definir o símbolo da rupia indiana no modo de exibição de texto, que é definido com o texto como quantidade.

Símbolo:

insira a descrição da imagem aqui

Estou tendo a fonte ou o arquivo .TTF disso na pasta Ativos / fontes.

E tentei usá-lo como:

Typeface typeFace_Rupee = Typeface.createFromAsset(getAssets(),fonts/Rupee_Foradian.ttf");
TextView tvRupee = (TextView) findViewById(R.id.textview_rupee_mlsaa);
tvRupee.setTypeface(typeFace_Rupee);

// Tried to set symbol on text view as follows.
tvRupee.setText("`");

Como acima, ao definir a fonte, obtive um erro de ponteiro nulo.

No arquivo word após escolher a fonte e digitar ` temos o símbolo. mas não está funcionando no Android.

Então, quais etapas devo seguir para fazer isso ...


7
Basta usar "\ u20B9" em sua string de texto definido sempre que quiser mostrar o símbolo
Akbari Dipali

@Akbari Dipali Tentei "\ u20B9" mas mostra uma caixa no texto após rodar no emulador. Mas, no design de layout da GUI, parece bom.
Manoj Fegde

@Akbari Dipali Obrigado. Não está funcionando no emulador, mas testei no dispositivo. E funciona bem nisso.
Manoj Fegde

@AkbariDipali Estou tentando definir acima unicode no modo de exibição de texto, funciona bem na versão superior, mas nas versões inferiores abaixo de 4.0 mostra uma caixa em vez de um símbolo. Você pode por favor ajudar. como configurar em todas as versões
Dory

@Nidhi Sim, tenho o mesmo problema. Parece uma caixa no emulador, mas no dispositivo funciona bem para mim. Se você enfrentar problemas, me avise. E se você obtiver resposta, vote a favor e eu.
Manoj Fegde

Respostas:


215

insira a descrição da imagem aqui

Olá, use isso em Strings

Para imprimir o símbolo da rupia : <string name="Rs">\u20B9</string>

Para imprimir texto Rs : <string name="rs">\u20A8</string>


Tentei "\ u20B9", mas mostra uma caixa no texto após a execução no emulador. Mas, no design de layout da GUI, parece bom.
Manoj Fegde

Obrigado. Não está funcionando no emulador, mas testei no dispositivo. E funciona bem nisso.
Manoj Fegde

1
No meu dispositivo, o primeiro \u20B9apresenta o símbolo de rúpias. O segundo \u20A8fornece o texto 'Rs'. De qualquer forma, eu recebo isso, obrigado. +1
Mahendran Sakkarai

Sua resposta está absolutamente correta. Não há duvidas. Mas, eu gostaria de adicionar uma linha de código para ajudar os iniciantes no Android App Development. Para usar este recurso em sua programação, você precisa chamar esse recurso de cadeia por esta linha de código: this.getContext().getResources().getString(R.string.Rs).
meDeepakJain


12

usar no adaptador

Viewholder.price.setText("Price: \u20B9"+dataAdapterOBJ.getPrice());

1
Embora este código possa responder tecnicamente à pergunta, você provavelmente ajudaria mais o OP se explicasse por que seu código resolve o problema de op
milo526

10

Experimente, em vez de Rupee_Foradian.ttfusar Rupee.ttf , funcionará. estou recebendo o símbolo da moeda.

Typeface tf = Typeface.createFromAsset(getAssets(), "font/Rupee.ttf");
textView1.setTypeface(tf);
textView1.setText("`");

gr8 resposta !!!! continue assim. logo você está indo para o programador android em guru !!!!
AndroidEnthusiastic

Eu já adicionei este. Acho que você não leu minha pergunta corretamente. Leia o código e questione corretamente.
Manoj Fegde

@ManojFegde Em vez de Rupee_Foradian.ttf use Rupee.ttf ele funcionará. Eu editei meu post, verifique. deixe-me saber qualquer esclarecimento
MuraliGanesan

@Muraliganesan: Não está funcionando. Como estou recebendo erro como- Java.lang.RuntimeException: tipo de letra nativo não pode.
Manoj Fegde

1
Obrigado pela ajuda. Mas a resposta acima <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> é - está funcionando para mim.
Manoj Fegde,



1

Experimente este snippet de código, ele está funcionando bem em Xamarin.Forms

 CultureInfo india = new CultureInfo("hi-IN");

 var rupeeSymbol = india.NumberFormat.CurrencySymbol;

1
 public static String getIndianRupee(String value) {
    Format format = NumberFormat.getCurrencyInstance(new Locale("en", "in"));
    return format.format(new BigDecimal(value));
}

0

você pode ir com a linha de código abaixo para Flutter

child: Text('\u20B9 ${tx.amount}',
                        
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.