如何在 Android 的 XML 编辑器中插入特殊字符作为文本?

Posted

技术标签:

【中文标题】如何在 Android 的 XML 编辑器中插入特殊字符作为文本?【英文标题】:How do I insert special characters as text in XML editor for Android? 【发布时间】:2012-01-26 16:26:56 【问题描述】:

所以,我正在编写一个涉及使用一些数学符号的应用程序。我在可视化 XML 编辑器中执行此操作。有什么办法可以得到一个整数符号或“小于或等于”符号?诸如此类。

谢谢!

【问题讨论】:

【参考方案1】:
Use &lt; for <, &gt; for > and &amp; for &.

<   less than   &lt;    
>   greater than    &gt;    
&   ampersand   &amp;   
¢   cent            &cent;  
£   pound           &pound; 
¥   yen         &yen;   
€   euro            &euro;  
§   section         &sect;  
©   copyright   &copy;  
®   registered trademark    &reg;   
™   trademark   &trade;

【讨论】:

太棒了,谢谢 :) 有没有具体的名称,我可以通过 Google 找到数学符号列表? 实际上,当我尝试将其添加到 strings.xml 文件时,它只是字面上的文本。有办法解决吗? 这些是 html“字符代码”。因为例如&amp;lt;&gt;在HTML中有特殊的含义,所以为了写一个字面量&amp;lt;,改写&amp;lt;。我对 android 上的 XML 不熟悉,但也许如果您在相关字符串周围放置 &lt;html&gt; 标签,那么它们将被正确替换。进一步注意,HTML 中没有 greater-than-or-equal-toless-than-or-equal-to 标记。但是,有希腊符号,例如大写 Sigma(求和)。只需搜索 "character code" html,它应该是第一个结果(如果存在)。 我们可以为 = 使用什么?【参考方案2】:

尝试将它们作为 HTML。

String htmlStringWithMathSymbols = "&#8804;  &#8805;";

textView.setText(Html.fromHtml(htmlStringWithMathSymbols));

在这里你可以在 textView 中显示你的数学符号

这里是http://www.hrupin.com/2011/12/how-to-put-some-special-math-symbols-in-textview-editview-or-other-android-ui-element的帖子

希望对你有帮助!

【讨论】:

我已经弄清楚了,这就是我的做法。我没有像那样创建不同的字符串,而是说“mInverse.setText (Html.fromHtml ("α ° α -1 = &apsilon;"));" 问题询问如何在 XML 编辑器中进行操作。【参考方案3】:

要通过 XML 在 Android 中插入特殊的 unicode 字符(包括数学符号),您所要做的就是在 XML 中包含带有 &amp;#&lt;uni-code&gt;; 的 unicode 字符的 HTML 代码。例如,如果您想在与您的活动相对应的 XML 文件(例如 main.xml)的按钮视图中显示数学符号“Pi”,您将在 main.xml 中包含以下内容:

<Button
    ...
    android:text="@string/button_pi"
    ...
</Button>

然后您将在 strings.xml 文件中识别上面包含的字符串资源 'button_pi',如下所述

<string name="button_pi"> &#928;</string>

现在,当您构建和运行代码时,您会看到 pi 的符号很好地显示在您的视图中。 下面的链接提供了所有 uni-code 字符集(包括所有特殊符号)的 HTML 代码的完整表

http://www.w3schools.com/tags/ref_symbols.asp

http://www.ascii.cl/htmlcodes.htm

【讨论】:

【参考方案4】:

我曾经不得不做类似的事情,将外语字符放入 XML 文件中。最好的,据我所知,唯一的方法是将要显示的文本放在 strings.xml 文件中,并在 XML 中以@string/your_text_declaration_here 引用它们。将所有文本放在 string.xml 文件中通常也是一个好习惯,无论是否有特殊字符。

【讨论】:

太棒了,谢谢。所以,我找到了数学符号的 unicode 数字列表(这里:unicode.org/charts/PDF/U2200.pdf)。我能以某种方式使用这些来获得它吗? 我不能 100% 确定 Android 字体集中支持所有这些符号,但您可以尝试一下。由于 PDF 中的符号实际上不是文本字符,因此您必须找到实际的文本字符本身,然后将其复制并粘贴到您的字符串资源中。 我尝试添加类似 <进入strings.xml,但它们只是作为文本“<”出现哈哈。有办法解决吗?我试过用引号输入它,但认为这没有帮助。 尝试使用文字字符而不是代码或替代标识符;而不是“&lt”使用“ 【参考方案5】:

以下任何&amp;int; &amp;Integral; &amp;#x0222B; &amp;#8747; 都会产生一个整数符号:∫

&Int;可以用&amp;Int; &amp;#x0222C;实现 &着色;可以用&amp;tint;实现 &conint;可以通过&amp;conint;实现

【讨论】:

实际上在 Android Studio 中给出了 'Unresolved Entity Reference int' 'Unresolved Entity Reference Integral'。【参考方案6】:

有一个商业产品用于将 XML 文本元素中的数学/源代码特殊符号转换为有效的 XML,所有类和起始源代码都集成到应用程序中,允许您在文本元素中保留特殊字符(称为 XPL文件而不是 XML),并在处理过程中转换为有效的 XML。

您可以从命令行使用免费版本,该版本还可以确保您的文件类型符合指定(例如 ISO-8859-1,如果您使用 å、ä、ö 等字符。sc latin- 1个字符集)。

Code from the High Level Logic Project

【讨论】:

【参考方案7】:
<TextView
    android:layout_
    android:layout_
    android:text="\u23F0"/>

将导致显示时钟

或在 Kotlin 中:

myTextView.text = "\u23F0"

【讨论】:

以上是关于如何在 Android 的 XML 编辑器中插入特殊字符作为文本?的主要内容,如果未能解决你的问题,请参考以下文章

android editText如何在代码中设置可以编辑?

如何将背景图像添加到 XML 文件?

Android XML 在另一个布局上插入布局

在android studio中删除重构xml中的空格行

Android:如何在build.gradle中获取资源字符串以支持多种语言的多种口味?

如何在 Android Studio / JetBrains IntelliJ IDEA 中编辑模板?