【问题标题】:Set Indian Rupee symbol on text view在文本视图上设置印度卢比符号
【发布时间】:2013-02-16 00:20:53
【问题描述】:

我正在开发一个应用程序。而且我需要在文本视图上设置印度卢比的符号,该符号以文本为金额。

符号:

我在 Assets/fonts 文件夹中有这个字体或 .TTF 文件。

我尝试将其用作:

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("`");

如上设置字体我得到空指针错误。

在 word 文件中选择字体并输入 ` 我们得到了符号。但它不适用于android。

那么我应该遵循哪些步骤来做到这一点......

【问题讨论】:

  • 只需在 settext 字符串中使用“\u20B9”即可显示符号
  • @Akbari Dipali 我试过 "\u20B9" 但它在模拟器上运行后显示文本框。但在 GUI 中的布局设计看起来不错。
  • @Akbari Dipali 谢谢。它不适用于模拟器,但我在设备上对其进行了测试。它可以正常工作。
  • @AkbariDipali 我试图在文本视图中设置高于 unicode,它在较高版本中运行良好,但在 4.0 以下的较低版本中,它显示一个框而不是符号。你能帮忙吗?如何在所有版本中设置
  • @Nidhi 是的,我遇到了同样的问题。它在模拟器上看起来像盒子,但在设备上它对我来说运行良好。如果您遇到问题,请告诉我。如果你得到答案,那就点赞和我。

标签: android android-fonts


【解决方案1】:

你好在字符串中使用这个

打印卢比符号<string name="Rs">\u20B9</string>

对于打印 Rs 文本: <string name="rs">\u20A8</string>

【讨论】:

  • 我试过 "\u20B9" 但它在模拟器上运行后显示文本框。但在 GUI 中的布局设计看起来不错。
  • 谢谢。它不适用于模拟器,但我在设备上对其进行了测试。它可以正常工作。
  • 在我的设备中,第一个 \u20B9 给出了卢比符号。第二个\u20A8 给出“Rs”文本。无论如何,我明白了,谢谢。 +1
  • 你的答案是绝对正确的。毫无疑问。但是,我想添加一行代码来帮助新手进入 Android 应用程序开发。要将这个资源用到你的编程中,你需要通过这行代码调用这个字符串资源:this.getContext().getResources().getString(R.string.Rs)
【解决方案2】:

如果您想打印Rupee Symbol,请使用\u20B9

如果要打印"Rs",请使用\u20A8

【讨论】:

【解决方案3】:

在适配器上使用

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

【讨论】:

  • 虽然这段代码可能在技术上回答了这个问题,但如果你解释为什么你的代码解决了 op 的问题,你可能会更多地帮助 OP
【解决方案4】:

试试这个,而不是Rupee_Foradian.ttf 使用Rupee.ttf 它会起作用。我正在获取货币符号。

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

【讨论】:

  • gr8 答案!!!保持这种方式。很快你就要将安卓程序员变成大师了!!!!
  • 我已经添加了这个。我认为您没有正确阅读我的问题。正确阅读代码和提问。
  • @ManojFegde 代替 Rupee_Foradian.ttf 使用 Rupee.ttf 它将起作用。我已经编辑了我的帖子检查它。让我知道任何澄清
  • @Muraliganesan:它不起作用。正如我收到错误一样-Java.lang.RuntimeException:本机字体不能。
  • 感谢您的帮助。但上述答案为 - <string name="Rs">\u20B9</string> (or) <string name="rs">\u20A8</string> 对我有用。
【解决方案5】:

将 Unicode 复制并粘贴到 XMLJava 即可。有关 Unicode 的更多信息,请参阅 http://www.fileformat.info/info/unicode/char/20b9/index.htm

【讨论】:

    【解决方案6】:

    您只需按 Alt + Ctrl + 4

    【讨论】:

    • 取决于您的键盘和设置。
    【解决方案7】:
     public static String getIndianRupee(String value) {
        Format format = NumberFormat.getCurrencyInstance(new Locale("en", "in"));
        return format.format(new BigDecimal(value));
    }
    

    【讨论】:

      【解决方案8】:

      试试这个代码 sn-p 它在 Xamarin.Forms 中运行良好

       CultureInfo india = new CultureInfo("hi-IN");
      
       var rupeeSymbol = india.NumberFormat.CurrencySymbol;
      

      【讨论】:

        【解决方案9】:

        你可以使用下面的 Flutter 代码行

        child: Text('\u20B9 ${tx.amount}',
                                
        

        【讨论】:

          【解决方案10】:

          2022年,将数字设置为带有货币符号的印度货币示例:

          double rupee = list.getAmount();
          String x = NumberFormat.getCurrencyInstance(new Locale("en","in")).format(rupee);
          

          不需要任何文件等,印度格式的货币,从右起三位数后为逗号,带有卢比符号

          【讨论】:

            【解决方案11】:

            只需简单地写下这段代码:

            Text(
              '\u{20B9}${2880.0}',
              textAlign: TextAlign.start,
              style: TextStyle(
                  color: const Color(0xFF000000),
                  fontSize: 15.0,
                  fontWeight: FontWeight.w300),
            )
            

            【讨论】:

              猜你喜欢
              • 2012-07-29
              • 1970-01-01
              • 1970-01-01
              • 2012-02-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-07-24
              相关资源
              最近更新 更多