Android EditText实现输入表情

 更新时间:2017年08月04日 17:16:24   作者:饭饭_fan  
editText是TextView的子类,TextView能用的工具EditText都能用,接下来通过实例代码给大家分享Android EditText实现输入表情功能,感兴趣的朋友一起看看吧

一、简介

editText是TextView的子类,TextView能用的工具EditText都能用,这里就是editText利用SpannableString的ImageSpan实现输入表情的功能

类结构图:

二、方法

1)EditText利用SpannableString的ImageSpan实现添加表情的方法

第一步:创建SpannableString对象spannableString

SpannableString spannableString=new SpannableString("d");

第二步:利用SpannableString的setSpan方法添加imageSpan

ImageSpan imageSpan=new ImageSpan(this, BitmapFactory.decodeResource(getResources(),R.drawable.image1));
spannableString.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

第三步:在EditText对象中添加spannableString

et_emotion.append(spannableString);

三、代码实例

效果图:

代码:

 fry.Activity01

package fry;
import com.example.editTextDemo1.R;
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Activity01 extends Activity implements OnClickListener{
 private EditText et_emotion;
 private Button bt_addEmotion;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity01);
  et_emotion=(EditText) findViewById(R.id.et_emotion);
  bt_addEmotion=(Button) findViewById(R.id.bt_addEmotion);
  bt_addEmotion.setOnClickListener(this);
 }
 @Override
 public void onClick(View arg0) {
  // TODO Auto-generated method stub
  /*
   * EditText利用SpannableString的ImageSpan实现添加表情的方法
   * 第一步:创建SpannableString对象spannableString
   * 第二步:利用SpannableString的setSpan方法添加imageSpan
   * 第三步:在EditText对象中添加spannableString
   * 
   */
  SpannableString spannableString=new SpannableString("d");
  ImageSpan imageSpan=new ImageSpan(this, BitmapFactory.decodeResource(getResources(),R.drawable.image1));
  spannableString.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  et_emotion.append(spannableString);
 }
}

/editTextDemo1/res/layout/activity01.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >
 <EditText
  android:id="@+id/et_emotion"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:ems="10" >
  <requestFocus />
 </EditText>
 <Button
  android:id="@+id/bt_addEmotion"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="Button" />
</LinearLayout>

总结

以上所述是小编给大家介绍的Android EditText实现输入表情,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • android针对json数据解析方法实例分析

    android针对json数据解析方法实例分析

    这篇文章主要介绍了android针对json数据解析方法,以实例形式较为详细的分析了Android操作json格式数据的各种常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 在Android项目中使用AspectJ的详细攻詻

    在Android项目中使用AspectJ的详细攻詻

    AspectJ是实现AOP的其中一款框架,内部通过处理字节码实现代码注入,文章给大家提到AspectJ基础语法和集成AspectJ的方式,对AspectJ在android中使用教程感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • Android Service判断设备联网状态详解

    Android Service判断设备联网状态详解

    本文主要介绍Android Service判断联网状态,这里提供了相关资料并附有示例代码,有兴趣的小伙伴可以参考下,帮助开发相关应用功能
    2016-08-08
  • Android实现读写USB串口数据

    Android实现读写USB串口数据

    这篇文章主要为大家详细介绍了Android实现读写USB串口数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • 详解Android_性能优化之ViewPager加载成百上千高清大图oom解决方案

    详解Android_性能优化之ViewPager加载成百上千高清大图oom解决方案

    这篇文章主要介绍了详解Android_性能优化之ViewPager加载成百上千高清大图oom解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • android实现自动滚动的Gallary控件效果

    android实现自动滚动的Gallary控件效果

    这篇文章主要介绍了android实现自动滚动的Gallary控件效果,涉及Android中Gallary控件的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Android dip,px,pt,sp 的区别详解

    Android dip,px,pt,sp 的区别详解

    本篇文章是对Android中dip,px,pt,sp的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Templates实战之更优雅实现自定义View构造方法详解

    Templates实战之更优雅实现自定义View构造方法详解

    本篇文章介绍如何利用Android Studio提供的Live Templates更优雅实现自定义View的构造方法,说句人话就是:简化自定义View构造参数模板代码的编写,实现自动生成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Android桌面插件App Widget用法分析

    Android桌面插件App Widget用法分析

    这篇文章主要介绍了Android桌面插件App Widget用法,结合实例形式分析了桌面插件App Widget的功能、布局、创建及使用方法,需要的朋友可以参考下
    2016-08-08
  • Android Studio3.6新特性之视图绑定ViewBinding使用指南

    Android Studio3.6新特性之视图绑定ViewBinding使用指南

    这篇文章主要介绍了Android Studio3.6新特性之视图绑定ViewBinding使用指南,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03

最新评论