我该如何动态地将编辑中写的文字更改为表情符号...
例如:“很高兴认识您:)” =动态结果“很高兴认识您[pic]笑脸[pic]”:
Editest.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(Editable s) {
}
});
最佳答案
这样做的提示:
您可能能够做的是创建一个自定义管理器,该管理器是EditFields和BitmapFields的容器。当用户单击Manager内的初始EditField并开始键入时,您可以让他们键入直到他们想要图释为止。当他们选择它时,您将在EditField之后创建一个BitmapField,然后在BitmapField的右侧放置一个新的EditField。您必须跟踪用户按下退格键并清空EditField时应将其删除,然后他们选择BitmapField,随后的退格键将删除BitmapField并将焦点放在先前的EditField上。
您还必须创建自己的EditField(可以控制其大小),以及BitmapField(允许使用退格键将其删除)。
就我所能想到的而言,将它用于5.0不会有任何问题
编辑评论:
您必须采用任何方法来实现自己的Manager的sublayout(),因此您知道职位,因为您是将职位放置在那里的人。如果要进行多行处理(我的方法是针对单行处理),则可以执行以下三种操作之一:
只需为每行添加新的EditFields并进行链接
我说的地方也是一样
退格键将您移至上一个
字段,在这种情况下为最后一行。
您必须保持衡量
大领域是基于
文字,看看是否会移动
到下一行。如果只是
调整EditFields的位置
定位。
您可以在
多行字段
实现自己的EditField
扩大高度,在这种情况下
知道文本在哪里以及什么
线路您在。绘制位图
将是一个计算问题
(您的行号是多少)*(字体
高度)和
getAdvance(text_up_to_bitmap)。
在以下位置实现自己的EditField
你有一个专注的经理
您手动完成所有
画画。您可以解析一个字符串
您从捕获关键笔画中节省了
并可能有一个标志
表情符号应该是。画文字
在此之前,绘制图释,然后
继续绘制文本。的
困难是你会
必须做诸如确定
光标应位于的位置
虚拟键盘,然后
处理其他一些任务
EditField为您服务。