最近项目要修改表情布局,看着那个心碎啊,好几个页面都用到了表情面板,以前的哥们不耐其凡的复制了好几份,每次都一大堆代码,看着心里有些无奈的抓狂。
原理:表情底层数据传输其实就是一个特殊文本传输,通过文本匹配,显示出对应的表情。特殊文本需要用到安卓中的SpannableString拓展性字符串相关知识SpannableString可以让一段字符串在显示的时候,将其中某段文字附着上其他内容,附着的拓展内容可以是图片,或者特殊文字格式等
看看效果:
使用方法:
1.在使用前要初始化,建议放在ManiActivity中
/** * 初始化表情 */ private void initEmoji() { // 初始化英寸数 double density = getDensity(); if (density > 0) { SmileyParser.SCREEN_INCH = density; } //如果优化将这个初始化到首页MainActivity DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); SmileyParser.init(getBaseContext(),metrics); }
2.在xml文件中使用面板
<com.test.emoji.emoji.EmojiRelativaLayout android:id="@+id/emojiView" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.test.emoji.emoji.EmojiRelativaLayout>
mEmoji = (EmojiRelativaLayout) findViewById(R.id.emojiView); mEmoji.setOnEmojiView(this);
源码下载:http://download.csdn.net/detail/li5685918/9862123