黑莓 - 在文本领域的面带笑容

时间:2011-05-30 11:13:51

标签: blackberry text textbox emoticons

我正在寻找一种在文本字段(LabelField,EditField等)中插入表情符号/表情符号/任何位图的方法。从我到目前为止所研究的内容来看,没有直接的方法可以做到这一点,所以我一直试图模拟这种行为。

我正在考虑使用普通文本字段而不是表情符号来插入空格,然后将一些BitmapField放在表情符号所在的文本字段上。问题是我没有可靠/快速的方法在屏幕上找到角色的位置(x,y)。

你能给我一些想法吗?

您能想到解决此问题的其他方法吗?

我确信很多人在某个时候遇到过这种问题。我希望有人设法找到解决方案。无论多么疯狂/复杂/困难,我都迫切希望接受任何解决方案。

另外,我想在SDK 5.0及更高版本中使用它,但我只会满足于6.0。

1 个答案:

答案 0 :(得分:3)

您可以做的是创建一个自定义管理器,它是EditFields和BitmapFields的容器。当用户单击Manager内部的初始EditField并开始键入时,您可以让他们键入,直到他们想要一个表情符号。当他们选择它时,您在EditField之后创建一个BitmapField,然后将一个新的EditField放在BitmapField的右侧。你必须跟踪诸如用户点击退格并清空EditField之类的内容,它应该被删除,然后他们选择BitmapField,后续退格将删除BitmapField并将焦点放在之前的EditField上。

您还必须创建可以控制其大小的自己的EditField,以及允许退格删除它的BitmapField。

就我可以提前考虑,使用5.0

时不应该有任何问题

修改评论

你必须以你采取的任何方式实施你自己的经理子布局(),所以你知道立场,因为你是那些把它们放在那里的人。如果你想要做多行(我的方法是单线),你可以做三件事之一:

1。)每行都有新的EditFields,并按照我所说的退格方式将你放到前一个Field的方式进行链接,在本例中是最后一行。您必须测量字段基于文本的大小,并查看是否会将其移动到下一行。如果它只是调整EditFields的位置。

2.。)您可以通过实现扩展高度的自己的EditField在多行字段中进行图像放置,在这种情况下,您将知道文本的位置以及您所在的行。绘制位图将是计算(你是什么行号)*(字体高度)和getAdvance(text_up_to_bitmap)的问题。

3。)实现您自己的EditField,您可以在其中使用可聚焦的Manager来手动执行所有绘图。您可以解析从捕获键击中节省的字符串,并且可能有一个表情符号应该是的标志。在它之前绘制文本,绘制表情符号,然后继续绘制文本。这样做的难点在于你需要做的事情,比如确定光标应该在哪里,启动虚拟键盘,以及处理EditField为你做的其他一些任务。