表情符号(表情符号)视图/键盘布局的实现我试图弄清楚如何在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");
至尊宝的传说
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;}
- 3 回答
- 0 关注
- 783 浏览
添加回答
举报
0/150
提交
取消