最近项目要修改表情布局,看着那个心碎啊,好几个页面都用到了表情面板,以前的哥们不耐其凡的复制了好几份,每次都一大堆代码,看着心里有些无奈的抓狂。
原理:表情底层数据传输其实就是一个特殊文本传输,通过文本匹配,显示出对应的表情。特殊文本需要用到安卓中的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>
3.使用
mEmoji = (EmojiRelativaLayout) findViewById(R.id.emojiView);
mEmoji.setOnEmojiView(this);
打赏下载:http://download.csdn.net/detail/li5685918/9862123
Git地址:https://github.com/lixiaopeng168/Emoji