在TextView中显示度数符号

时间:2016-04-18 16:57:41

标签: android xml user-interface

我希望使用TextView在我的活动中显示50度,如下所示

enter image description here

我真的不知道如何做到这一点,并通过谷歌搜索我找到了这个XML代码

android:text="50°"

我不知道上面的代码是什么 任何人都可以向我解释究竟是什么以及它是如何运作的。

10 个答案:

答案 0 :(得分:7)

  1. 摄氏度使用:

        "\u2103" 
    

    华氏使用:

      "\u2109"
    

    仅用于没有使用c或f的度数符号:

     "\u00B0"
    

    例如:

      String TemperatureMeasurementStr = String.valueOf(measurement.getTemperature()) + "\u2103";
    

    或简单的例子:

      String TemperatureMeasurementStr = "37"+ "\u2103";
    

    并在textView

    中设置字符串
      public TextView temperatureTV;                     
      temperatureTV.setText(TemperatureMeasurementStr);
    
  2. 如果您只想将符号添加到xml布局文件中 - 只需使用:

      android:text="37\u2103"
    
  3. 例如:

    <TextView
         android:id="@+id/temperature_measure"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignTop="@+id/temperature_icon"
         android:layout_marginBottom="-5dp"
         android:layout_marginLeft="10dp"
         android:layout_toRightOf="@+id/temperature_icon"
         android:text="37\u2103"
         android:textAlignment="center"
         android:textSize="50sp"
      />
    
    1. 如果你想要这个符号更小或者颜色或风格不同那么数字(假设&#34;正常&#34;而数字本身是&#34;粗体&#34;)那么你可以使用SpannableString :
    2. 像这样:

      String TemperatureMeasurementStr = String.valueOf(measurement.getTemperature()) + "\u2103";
      SpannableString tempSpan=  new SpannableString(TemperatureMeasurementStr);
      if (TemperatureMeasurement.length() >0){
      
          //the symbol will be smaller then the number
          tempSpan.setSpan(new RelativeSizeSpan(0.7f),TemperatureMeasurementStr.length() - 1, TemperatureMeasurementStr.length(), 0);
      
          //the number style will be bold and the symbol normal
         tempSpan.setSpan(new android.text.style.StyleSpan(Typeface.BOLD), 0,   TemperatureMeasurementStr.length()-1, 0);
      
          //the symbol color will be yellow
         tempSpan.setSpan(new ForegroundColorSpan(Color.YELLOW), TemperatureMeasurementStr.length() - 1, TemperatureMeasurementStr.length(), 0);
       }
       temperatureTV.setText(tempSpan);
      

答案 1 :(得分:2)

analytics-test-1279只是将特殊字符插入XML的标准方法。您可以参考https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references获取更完整的说明,但要将其细分:

  • &#xb0;表示这是一个特殊角色的开始。
  • &表示字符用数字表示(与特殊字符串代码对比,例如&符号#)。
  • &amp;表示数字代码是十六进制值。
  • x度符号的十六进制值(十进制176)。
  • b0结束序列。

另一种表示形式是;,它使用十进制值而不是十六进制。

因此,如果您知道其ASCII十进制/十六进制值,则可以插入任何特殊字符。

答案 2 :(得分:2)

有很多方法可以做到:

1.-您可以按如下方式创建char

char degreesymbol = '\u00B0';

然后您可以将其添加到TextView

2.-您可以将其放在XML上,如下所示:

android:text="50&#x2103;"

3.-如果你想以编程方式进行,请按以下步骤进行:

YOURTEXTVIEW.setText((Your_Temperature) + " \u2109");

答案 3 :(得分:1)

&#xb0;degree symbol的HTML十六进制编码。

答案 4 :(得分:1)

&#39;&安培;#XB0&#39;它是学位的unicode角色。特殊字符以unicode格式使用。 (如果您不使用unicode字符,通常会显示警报)

来源: http://www.fileformat.info/info/unicode/char/b0/index.htm

如果你想知道为什么要使用unicode字符,这个网站解释一下: &#39; Unicode为每个字符提供唯一的编号(...)如果您的文档需要U + 0289,任何计算机程序都应该清楚该字符应该是什么&#39; http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=UTConvertQ1

答案 5 :(得分:1)

android:text="50&#xb0;具体&#xb0;是HTML十六进制编码!

此外,您可以&#176;使用同样的内容。

了解更多http://www.fileformat.info/info/unicode/char/b0/index.htm

如果您想使用代码,请尝试以下操作:myTextView.setText ( "50" + (char) 0x00B0 );

答案 6 :(得分:1)

<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="\u00B0"/>

答案 7 :(得分:0)

对于任何来此页面寻找在JSP中执行此操作的人

<%@ page contentType="text/html; charset=UTF-8" %>

答案 8 :(得分:0)

计算机键盘上没有上标圆形式的印刷符号,通常用degrees celsius symbol表示的角度和温度值的大小表示。但是,在编码表中,操作系统用于在计算机屏幕上显示字符。它是此表中前128个字符之一,因此即使在最简单的文本格式(例如txt)的文档中也可以使用它。

答案 9 :(得分:0)

在 XML 中,如果要显示 android:text="32°" 可以使用:

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"      
android:text="32&#xb0;"
android:id="@+id/myTV"></TextView>

要以编程方式执行此操作,您可以使用:

myTV.setText("32" + (char) 0x00B0);