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

问题描述 投票:3回答:2

我是这个论坛的新手,这是我的第一篇文章。所以,我创建了一个带有自定义键盘的应用程序,显示数学字符,例如积分,窦,幂.......之后,我想在EditText上插入这些字符,工作正常,但问题是我想要创建一个像https://ibb.co/F7j22BY这样的数学表达式。

我尝试过: - 我已经尝试过Mathjax,它适用于网络而不是手机,因此唯一的方法是在webview上显示表达式,而这不是我真正想要的。

android math android-edittext
2个回答
1
投票

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


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 Invisible到某处但是检索它的文本

© www.soinside.com 2019 - 2024. All rights reserved.