gpt4 book ai didi

android - 在聊天中显示表情符号

转载 作者:行者123 更新时间:2023-11-30 02:34:57 28 4
gpt4 key购买 nike

您好,我正在尝试在我的聊天 xmpp 应用程序中实现表情符号。

这是我在 EditText 中获取表情符号的代码

  private OnClickListener emoclic = new OnClickListener() {
@Override
public void onClick(View v) {

Drawable happySmiley = getActivity().getResources().getDrawable(R.drawable.emo2);
happySmiley .setBounds(0, 0, 22,22);
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append("[emo2_anchor]");
builder.setSpan(new ImageSpan(happySmiley), builder.length()-"
[hotel2_anchor]".length(),
builder.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
chatMsg.getText().append(builder);
}

};

但是这样的结果是

"hi!!! [emo2_anchor]"

我的问题是:

1.- 为什么显示 [emo2_anchor]?

2.- 如何显示图像?

最佳答案

首先,您在字符串中插入 [emo2_anchor],但使用 [hotel2_anchor] 作为长度。

其次,您必须检查 Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 是否与您对字符索引的使用相匹配,或者是否存在差一错误。

第三,您不必使用自己的占位符和替换图像。您可以让您的用户正常输入表情符号(例如从他们的软件键盘)并在字符串中包含 Unicode 代码点。 Android 4.1.1 中的内置表情符号字体将处理渲染。如果您需要对每个 API 级别的支持,this library可以帮助你。

无论如何,试试这些行:

SpannableStringBuilder builder = new SpannableStringBuilder();
String placeholder = "[emo2_anchor]";
String myText = chatMsg.getText().toString()+" "+placeholder;
builder.append(myText);
builder.setSpan(new ImageSpan(happySmiley), myText.indexOf(placeholder), myText.indexOf(placeholder)+placeholder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
chatMsg.setText(builder);

关于android - 在聊天中显示表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com