【发布时间】:2020-10-14 10:34:17
【问题描述】:
我正在将我的 Android 应用程序移植到 iOS 并且为此使用 Codename One。
在我的应用程序中,EditText 可以包含与文本混合的图标。它是通过如下指令完成的:
MyImageSpan iconSpan=new MyImageSpan(activity, R.drawable.icon);
editText.getText().insert(caretPosition,CHAR);
editText.getText().setSpan(iconSpan,caretPosition,caretPosition+1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
然后在其他部分,必须检测跨度(如果存在),并且执行如下:
Editable editable = editText.getText();
for (int i = 0; i < editable.length(); i = next) {
// find the next span transition
next = editable.nextSpanTransition(i, editable.length(), MyImageSpan.class);
// get all spans in this range
MImageSpan[] tempSpans = editable.getSpans(i, next, MyImageSpan.class);
...
...
//In my app that becomes really complex
...
...
...
...
}
我尝试使用这个在线工具:
按照 Codename One 文档的建议,管理字体字形等图标。
事实上,我不明白是否可以在 Codename One 的 TextField 中使用不同字体的 span,我不知道是否可以在 TextField 中找到并管理它们。
但最重要的是,从 svg 文件创建字体的在线工具对我不起作用,因为有些图标被还原,有些损坏或混乱,有些很小,取决于保存格式(最终我保存了采用纯 SVG 格式以避免问题,但它是相同的)。
我要问的是如何处理 Codename One 中 TextField 中的跨度。 它不必是相同的“方式”,但结果必须相同。
【问题讨论】:
标签: java android codenameone textfield imagespan