我该如何动态地将编辑中写的文字更改为表情符号...
例如:“很高兴认识您:)” =动态结果“很高兴认识您[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为您服务。

10-08 15:11