标签:
最近要实现一个类似QQ聊天输入框,在输入框中可以同时输入文字和表情图像的功能。如下图所示的效果:
为了实现这个效果,先去了解了一下ImageSpan和SpannableString的用法。下面用一个小实例来看看具体的用法,效果如下:
代码如下:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView mDetailView = (TextView) findViewById(R.id.detail); String text = "大家好啊,多笑笑嘛,就像这样[smile]"; ImageSpan imageSpan=new ImageSpan(this, R.drawable.smile); SpannableString spannableString = new SpannableString( text); spannableString.setSpan(imageSpan, text.indexOf('['), text.indexOf(']') + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); mDetailView.setText(spannableString); }
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/detail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
至于要实现第一图所示的QQ聊天输入框的效果,需要找到多张QQ表情图片,然后和相对应的文本,用一个Map<String key,Integer value>来存储起来。然后使用网格布局,将所有的表情都进行相关的缩放效果后再显示出来,还得使用分页技术,以及添加立体翻转效果特效等,这里就不贴代码了。
可以参考网上的相关博客:
Android UI【android 仿微信、QQ聊天,带表情,可翻页,带翻页拖动缓冲】
地址:http://blog.csdn.net/lnb333666/article/details/8546497
==================================================================================================
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng
==================================================================================================
版权声明:本文为博主原创文章,未经博主允许不得转载。
我的Android进阶之旅------>Android关于ImageSpan和SpannableString的初步了解
标签:
原文地址:http://blog.csdn.net/ouyang_peng/article/details/47123519