Android EditText實現(xiàn)輸入表情
一、簡介
editText是TextView的子類,TextView能用的工具EditText都能用,這里就是editText利用SpannableString的ImageSpan實現(xiàn)輸入表情的功能
類結構圖:
二、方法
1)EditText利用SpannableString的ImageSpan實現(xiàn)添加表情的方法
第一步:創(chuàng)建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實現(xiàn)添加表情的方法 * 第一步:創(chuàng)建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實現(xiàn)輸入表情,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
利用Jetpack?Compose復刻游戲Flappy?Bird
Flappy?Bird是13年紅極一時的小游戲,其簡單有趣的玩法和變態(tài)的難度形成了強烈反差,引發(fā)全球玩家競相把玩!本文將通過Jetpack?Compose復刻這一游戲,感興趣的小伙伴可以了解一下2022-02-02Android binder 匿名服務實現(xiàn)雙向通信的解決方案
這篇文章主要介紹了Android binder 匿名服務實現(xiàn)雙向通信的解決方案,當然,這種方案是可行的,只是需要client和server都向servicemanager注冊一個服務,實現(xiàn)起來有點麻煩,不太建議這么做,需要的朋友可以參考下2024-04-04