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仿直播类app赠送礼物功能

    Android仿直播类app赠送礼物功能

    这篇文章主要介绍了Android仿直播类app赠送礼物功能,本文通过实例代码效果图展示的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Android使用第三方库实现日期选择器

    Android使用第三方库实现日期选择器

    这篇文章主要为大家详细介绍了Android使用第三方库实现日期选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Kotlin基本数据类型详解

    Kotlin基本数据类型详解

    大家好,本篇文章主要讲的是Kotlin基本数据类型详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android Studio实现简单绘图板

    Android Studio实现简单绘图板

    这篇文章主要为大家详细介绍了Android Studio实现简单绘图板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android启动页出现白屏、黑屏的解决方案

    Android启动页出现白屏、黑屏的解决方案

    这篇文章主要给大家介绍了关于Android启动页出现白屏、黑屏的解决方案,这一个需求是每位Android开发者都需要的,最近发现了一个不错的解决方法,所以分享给大家,文中给出了详细的介绍,需要的朋友可以参考下。
    2017-12-12
  • Android DialogFragment使用之基类封装

    Android DialogFragment使用之基类封装

    这篇文章主要介绍了Android DialogFragment使用之基类封装示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Android开发实现消除屏幕锁的方法

    Android开发实现消除屏幕锁的方法

    这篇文章主要介绍了Android开发实现消除屏幕锁的方法,结合实例形式较为详细的分析了Android锁屏的原理及消除屏幕锁的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • Android编程判断网络连接是否可用的方法

    Android编程判断网络连接是否可用的方法

    这篇文章主要介绍了Android编程判断网络连接是否可用的方法,实例分析了Android判定网络连接的相关技巧与实现步骤,需要的朋友可以参考下
    2015-12-12
  • 利用Jetpack Compose复刻游戏Flappy Bird

    利用Jetpack Compose复刻游戏Flappy Bird

    Flappy Bird是13年红极一时的小游戏,其简单有趣的玩法和变态的难度形成了强烈反差,引发全球玩家竞相把玩!本文将通过Jetpack Compose复刻这一游戏,感兴趣的小伙伴可以了解一下
    2022-02-02
  • Android binder 匿名服务实现双向通信的解决方案

    Android binder 匿名服务实现双向通信的解决方案

    这篇文章主要介绍了Android binder 匿名服务实现双向通信的解决方案,当然,这种方案是可行的,只是需要client和server都向servicemanager注册一个服务,实现起来有点麻烦,不太建议这么做,需要的朋友可以参考下
    2024-04-04

最新评论