3

我想为数学创建特殊字符,用于 android 应用程序。
而且我想知道是否可以将一个字符覆盖在另一个字符之上,或者是否可以对文本的呈现方式进行一些精细控制(以及您如何去做)。

4

4 回答 4

8

如果您需要一种显示数学方程式的通用方法,请查看jqMath。我认为您可以使用WebView.

许多数学符号都有 Unicode 代码点。具体来说,圆圈内“+”符号的 Unicode 代码点是 U+2295。如果字体支持,它们可以直接渲染。有关具有相应 Unicode 代码点的一些数学符号的列表,请查看此 Wikipedia 文章

另请查看此问题以获取在 Java 中使用 MathML 的资源。

于 2012-12-21T09:26:10.287 回答
1

我将扩展 View 类,然后使用您在 onDraw 方法中收到的 Canvas 对象的 drawText 方法。听起来您需要对绘制文本的坐标进行精细控制,而扩展 View 将为您提供这一点。看看 Canvas.drawText ,您可以根据需要使用 x 和 y 坐标来覆盖文本。

于 2012-12-25T02:13:58.210 回答
0

试试这个:

这样您就可以添加上标文本:

TextView out_unit2 = (TextView) findViewById(R.id.out_unit2);
out_unit2.setText((Html.fromHtml("meter<sup><small>2</small></sup>")));

下标文字:

TextView out_unit2 = (TextView) findViewById(R.id.out_unit2);
out_unit2.setText((Html.fromHtml("meter<sub><small>2</small></sub>")));

您可以使用它在代码中添加尽可能多的内容。

希望它可以帮助你。

谢谢。

于 2012-12-12T12:01:36.950 回答
0

它可能很快就会变得非常混乱,但是您可以使用 FrameLayout 和内部的几个 TextView 来完成它。例如,“0”的 XML 与“+”、上标“+”和下标“-”重叠:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="@dimen/title_bar_font_size" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        android:textSize="@dimen/title_bar_font_size" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        android:textSize="12sp"
        android:layout_marginLeft="12sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-"
        android:textSize="12sp"
        android:layout_marginLeft="12sp"
        android:layout_gravity="bottom" />
</FrameLayout>

导致:

输出

于 2012-12-20T21:15:06.400 回答