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


相关推荐: Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  详解Huffman编码算法之Java实现  高端建站如何打造兼具美学与转化的品牌官网?  如何将凡科建站内容保存为本地文件?  Laravel如何使用withoutEvents方法临时禁用模型事件  Firefox Developer Edition开发者版本入口  手机网站制作与建设方案,手机网站如何建设?  Laravel如何使用Vite进行前端资源打包?(配置示例)  如何撰写建站申请书?关键要点有哪些?  如何在服务器上配置二级域名建站?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  网站图片在线制作软件,怎么在图片上做链接?  Windows Hello人脸识别突然无法使用  网站建设整体流程解析,建站其实很容易!  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何快速生成橙子建站落地页链接?  微信公众帐号开发教程之图文消息全攻略  JavaScript常见的五种数组去重的方式  java获取注册ip实例  如何在建站之星绑定自定义域名?  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何登录建站主机?访问步骤全解析  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在云主机上快速搭建多站点网站?  如何在新浪SAE免费搭建个人博客?  JS经典正则表达式笔试题汇总  C#如何调用原生C++ COM对象详解  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何在万网ECS上快速搭建专属网站?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何在IIS中配置站点IP、端口及主机头?  如何在腾讯云服务器上快速搭建个人网站?  如何在云主机上快速搭建网站?  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  如何构建满足综合性能需求的优质建站方案?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  南京网站制作费用,南京远驱官方网站?  如何在万网自助建站中设置域名及备案?  Laravel怎么判断请求类型_Laravel Request isMethod用法  个人摄影网站制作流程,摄影爱好者都去什么网站?  浅谈javascript alert和confirm的美化  如何快速选择适合个人网站的云服务器配置?  Laravel中的Facade(门面)到底是什么原理