Android EditText实现输入表情

发布时间 - 2026-01-11 02:39:20    点击率:

一、简介

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实现输入表情,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# edittext  # 输入表情  # Android中EditText屏蔽第三方输入法表情的方法示例  # Android编程开发之EditText实现输入QQ表情图像的方法  # Android中EditText禁止输入表情的实例代码  # 第二步  # 小编  # 第三步  # 象中  # 子类  # 在此  # 结构图  # 给大家  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # normal  # px  # spacing  # word  # space  # size  # font 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 个人网站制作流程图片大全,个人网站如何注销?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  EditPlus中的正则表达式实战(6)  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  无锡营销型网站制作公司,无锡网选车牌流程?  JavaScript模板引擎Template.js使用详解  制作电商网页,电商供应链怎么做?  用yum安装MySQLdb模块的步骤方法  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  JS弹性运动实现方法分析  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何快速完成中国万网建站详细流程?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何在新浪SAE免费搭建个人博客?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  如何破解联通资金短缺导致的基站建设难题?  Laravel如何处理异常和错误?(Handler示例)  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  微信小程序 五星评分(包括半颗星评分)实例代码  Android okhttputils现在进度显示实例代码  如何用AWS免费套餐快速搭建高效网站?  网站建设保证美观性,需要考虑的几点问题!  如何在宝塔面板创建新站点?  PythonWeb开发入门教程_Flask快速构建Web应用  如何在腾讯云服务器快速搭建个人网站?  如何用PHP快速搭建CMS系统?  BootStrap整体框架之基础布局组件  图册素材网站设计制作软件,图册的导出方式有几种?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  中山网站推广排名,中山信息港登录入口?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  jquery插件bootstrapValidator表单验证详解  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】