如何在EditText上编写数学表达式?

时间:2019-03-16 10:22:07

标签: android math android-edittext

我是这个论坛的新手,这是我的第一篇文章。因此,我创建了一个使用自定义键盘的应用程序,该应用程序可以显示数学字符,例如积分,窦,幂等。之后,我想将这些字符插入EditText,效果很好,但是问题是我想创建一个类似https://ibb.co/F7j22BY的数学表达式。

我尝试过的事情: -我已经尝试过Mathjax,它是针对Web而非移动设备的,所以唯一的方法是在Webview上显示该表达式,而这并不是我真正想要的。

2 个答案:

答案 0 :(得分:1)

jqMath 是一个JavaScript模块,可轻松将格式化的数学表达式放入您的活动中。 您可以在线下载。 download Jqmath from this link

答案 1 :(得分:1)

检出此库。 https://github.com/jianzhongli/MathView

要将这个库添加到您的项目中,请转到build.gradle(模块)并添加:

implementation 'io.github.kexanie.library:MathView:0.0.6'

然后在XML布局文件中定义MathView

<LinearLayout ...>

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Formula two: from Java String with KaTeX"
    android:textStyle="bold"/>

<io.github.kexanie.library.MathView
    android:id="@+id/formula_two"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    auto:engine="KaTeX"
    >
</io.github.kexanie.library.MathView>

然后,在您的代码中对其进行配置。

public class MainActivity extends AppCompatActivity {
MathView formula_two;
String tex = "This come from string. You can insert inline formula:" +
        " \\(ax^2 + bx + c = 0\\) " +
        "or displayed formula: $$\\sum_{i=0}^n i^2 = \\frac{(n^2+n)(2n+1)}{6}$$";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
protected void onResume() {
    super.onResume();

    formula_two = (MathView) findViewById(R.id.formula_two);
    formula_two.setText(tex);
    editText.setHint(formula_two.getText().toString());
 }
}

要设置EditText提示,只需使用editText.setHint(formula_two.getText().toString) 因此,您可以使MathView在某处不可见,但可以检索其文本