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

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

我试图弄清楚如何在Facebook应用程序和谷歌Hangouts应用程序上实现表情符号(表情符号)选择。我查看SoftKeyboard了Android API示例中的Demo应用程序,但这些表情符号视图的显示看起来并不像SoftKeyboard。它的外观和行为更像是自定义Dialog视图。有没有人知道这些是如何实现的?


此外,Unicode是发送表情符号的最佳方式还是有其他选择?我注意到有些Unicode序列\u1F601不会渲染相应的表情符号而是显示为1

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


largeQ
浏览 769回答 3
3回答

白猪掌柜的

我发现了一个非常有用的表情键盘。此键盘不使用Unicode序列,而只使用本地图像资源。我认为这种类型的键盘只能在此应用程序中使用,而不能与其他应用程序或操作系统一起使用。所以我改为ImageView包含一个TextView包含Unicode序列的资产。在交叉引用支持的Unicode序列以及Visual Unicode数据库后,我意识到这\u1F601是一个32位的Unicode表示,并且16位表示可以设置为:EditText messageInput = (EditText) findViewById(R.id.message_input);messageInput.getText().append("\ud83d\ude01");

至尊宝的传说

一个视图组可见或消失也可以放大,它不会对话。每次初始化情绪时,我总是使用像[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;}
打开App,查看更多内容
随时随地看视频慕课网APP