我想创建一个简单的计算器。一个来自我的目标,它在EditText字段中的位置,具有特殊的数学字符,如平方根,pi ... F.e。 :
2/34*sqrt(121)
这里我想放置图像而不是分割,乘法字符,sqrt字符串。 我该怎么做?
答案 0 :(得分:1)
还有一些问题: 它确实需要是可编辑的,即用户可以直接输入吗?如果是这样,它将如何运作?当他们输入'*'时它会实现它并用你的png替换它?如果它们在打字时没有中断,而是在它们完成输入整行时立即中断会不会被接受?
我现在有最好的答案: 默认情况下,EditText不支持该功能。您可能必须创建自己的视图,它是EditText和LinearLayout的某种混搭,可以使用您的png保存ImageViews。如果用户不需要编辑它就会更容易,因为您可以将自定义视图设置为LinearLayout,并添加TextView和ImageViews,并在其中设置正确的文本和图像。如果它确实需要可编辑,那将是一个更大的挑战。您必须使用TextChangedListener在键入时拉出每个字符,并在需要时将其替换为ImageView。在我看来,困难的部分是知道在哪里定位ImageView并让EditText知道你希望它在Image的另一侧用文本进行备份。我不知道你会怎么做。也许最好的解决方案是你有一个他们输入的EditText然后单独将你的自定义视图作为显示视图。这样您就不必担心将图像放在EditText的顶部并正确地将光标移动到图像的右侧。
答案 1 :(得分:0)
我建议查看一个免费提供的字体,其中包含数学符号(某些快速搜索显示the StixFont project),然后只需将该字体添加到您的资源中,并将其设置为您的字体。您仍然可能需要Tim建议的TextWatcher / TextChangedListener(除非您使用自己的键盘输入符号)但这会解决尝试将图像插入文本字段的问题,并且还会保留向量字体提供的质量与嵌入文本字段的光栅图像。