为了账号安全,请及时绑定邮箱和手机立即绑定

表情符号(表情符号)视图/键盘布局的实现

表情符号(表情符号)视图/键盘布局的实现

Go
largeQ 2019-11-17 16:08:01
表情符号(表情符号)视图/键盘布局的实现我试图弄清楚如何在Facebook应用程序和谷歌Hangouts应用程序上实现表情符号(表情符号)选择。我查看SoftKeyboard了Android API示例中的Demo应用程序,但这些表情符号视图的显示看起来并不像SoftKeyboard。它的外观和行为更像是自定义Dialog视图。有没有人知道这些是如何实现的?此外,Unicode是发送表情符号的最佳方式还是有其他选择?我注意到有些Unicode序列\u1F601不会渲染相应的表情符号而是显示为1:EditText messageInput = (EditText) findViewById(R.id.message_input);messageInput.getText().append("\u1F601");
查看完整描述

3 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我发现了一个非常有用的表情键盘。此键盘不使用Unicode序列,而只使用本地图像资源。我认为这种类型的键盘只能在此应用程序中使用,而不能与其他应用程序或操作系统一起使用。

所以我改为ImageView包含一个TextView包含Unicode序列的资产。

在交叉引用支持的Unicode序列以及Visual Unicode数据库后,我意识到这\u1F601是一个32位的Unicode表示,并且16位表示可以设置为:

EditText messageInput = (EditText) findViewById(R.id.message_input);messageInput.getText().append("\ud83d\ude01");



查看完整回答
反对 回复 2019-11-18
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

一个视图组可见或消失也可以放大,它不会对话。每次初始化情绪时,我总是使用像[happy] = R.drawable.happy这样的关键值。这是情感的文本而内容就像[快乐]

public SpannableString textToImage(String content,Context c){
    SpannableString ss = new SpannableString(content);
    int starts = 0;
    int end = 0;
    if(content.indexOf("[", starts) != -1 && content.indexOf("]", end) != -1){
        starts = content.indexOf("[", starts);
        end = content.indexOf("]", end);
         SharedPreferences shared=c.getSharedPreferences("emotion",0);
         int resource=shared.getInt(content,0);
        try {
            Drawable drawable =c.getResources().getDrawable(resource);  
            if (drawable != null) {
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); 
                ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);  
                ss.setSpan(span, starts,end + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
            }
        } catch (Exception ex){
        }
    }
    return ss;}



查看完整回答
反对 回复 2019-11-18
  • 3 回答
  • 0 关注
  • 765 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信