EditText添加表情



  1. package com.kale.edittext02;  
  2.   
  3. import java.lang.reflect.Field;  
  4. import java.util.Random;  
  5.   
  6. import android.graphics.Bitmap;  
  7. import android.graphics.BitmapFactory;  
  8. import android.os.Bundle;  
  9. import android.support.v7.app.ActionBarActivity;  
  10. import android.text.Spannable;  
  11. import android.text.SpannableString;  
  12. import android.text.style.ImageSpan;  
  13. import android.view.Menu;  
  14. import android.view.MenuItem;  
  15. import android.view.View;  
  16. import android.view.View.OnClickListener;  
  17. import android.widget.Button;  
  18. import android.widget.EditText;  
  19.   
  20. public class MainActivity extends ActionBarActivity {  
  21.      private EditText editText;    
  22.      private Button button;   
  23.           
  24.      @Override    
  25.         public void onCreate(Bundle savedInstanceState) {    
  26.             super.onCreate(savedInstanceState);    
  27.             setContentView(R.layout.activity_main);    
  28.             editText=(EditText)findViewById(R.id.edittext);    
  29.             button=(Button)findViewById(R.id.button);    
  30.             button.setOnClickListener(new OnClickListener() {    
  31.                     
  32.                 @Override    
  33.                 public void onClick(View v) {    
  34.                     //產生隨機數  隨機數是從0開始  
  35.                     int randomId= new Random().nextInt(7);//nextInt(7)的範圍是0-6  
  36.                     try {    
  37.                         //獲取表情圖片文件名    
  38.                         Field field=R.drawable.class.getDeclaredField("f" + randomId);    
  39.                         int resourceId=Integer.parseInt(field.get(null).toString());    
  40.                         //在Android中要顯示圖片信息,必須使用BitMap的對象來加載    
  41.                         Bitmap bitmap=BitmapFactory.decodeResource(getResources(), resourceId);   
  42.                         //要讓圖片替代指定的文字就要用ImageSpan     
  43.                         ImageSpan imageSpan = new ImageSpan(MainActivity.this, bitmap);    
  44.                         //f就是圖片的前綴名    
  45.                         SpannableString spannableString = new SpannableString("f");  
  46.                         //設置字體  
  47.                         spannableString.setSpan(imageSpan, 01, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
  48.                         editText.append(spannableString);    
  49.                     } catch (SecurityException e) {    
  50.                         e.printStackTrace();    
  51.                     } catch (NoSuchFieldException e) {    
  52.                         e.printStackTrace();    
  53.                     } catch (Exception e) {    
  54.                         e.printStackTrace();    
  55.                     }    
  56.                 }    
  57.             });    
  58.         }    
  59.   
  60. }  

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <EditText  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:id="@+id/edittext"  
  11.         android:layout_marginTop="10dp"/>  
  12.     <Button   
  13.         android:layout_width="fill_parent"  
  14.         android:layout_height="wrap_content"  
  15.         android:id="@+id/button"  
  16.         android:text="添加表情"/>  
  17.   
  18.     <TextView  
  19.         android:id="@+id/textview1"  
  20.         android:layout_width="wrap_content"  
  21.         android:layout_height="wrap_content"  
  22.         android:text="使用android:digits屬性(輸入數字)" />  
  23.       
  24.     <EditText  
  25.         android:layout_width="200dp"  
  26.         android:layout_height="wrap_content"  
  27.         android:id="@+id/edittext1"  
  28.         android:layout_margin="10dp"  
  29.         android:digits="0123456789"  
  30.         android:layout_marginTop="10dp"/>  
  31.       
  32.     <TextView   
  33.         android:layout_width="wrap_content"  
  34.         android:layout_height="wrap_content"  
  35.         android:id="@+id/textview2"  
  36.         android:text="使用android:digits屬性(輸入26個小寫字母)"/>  
  37.     <EditText  
  38.         android:layout_width="200dp"  
  39.         android:layout_height="wrap_content"  
  40.         android:id="@+id/edittext2"  
  41.         android:layout_margin="10dp"  
  42.         android:digits="abcdefghijklmnopqrstuvwxyz"  
  43.         android:layout_marginTop="10dp"/>  
  44.       
  45.     <TextView   
  46.         android:layout_width="wrap_content"  
  47.         android:layout_height="wrap_content"  
  48.         android:id="@+id/textview3"  
  49.         android:text="使用android:inputType屬性(輸入數字)"/>  
  50.     <EditText  
  51.         android:layout_width="200dp"  
  52.         android:layout_height="wrap_content"  
  53.         android:id="@+id/edittext3"  
  54.         android:layout_margin="10dp"  
  55.         android:inputType="number|textCapCharacters"  
  56.         android:layout_marginTop="10dp"/>  
  57.       
  58.     <TextView   
  59.         android:layout_width="wrap_content"  
  60.         android:layout_height="wrap_content"  
  61.         android:id="@+id/textview4"  
  62.         android:text="使用android:inputType屬性(輸入Email)"/>  
  63.     <EditText  
  64.         android:layout_width="200dp"  
  65.         android:layout_height="wrap_content"  
  66.         android:id="@+id/edittext4"  
  67.         android:layout_margin="10dp"  
  68.         android:inputType="textEmailAddress"  
  69.         android:layout_marginTop="10dp"/>  
  70.       
  71.     <TextView   
  72.         android:layout_width="wrap_content"  
  73.         android:layout_height="wrap_content"  
  74.         android:id="@+id/textview5"  
  75.         android:text="使用android:inputType屬性(輸入有符號的浮點數)"/>  
  76.     <EditText  
  77.         android:layout_width="200dp"  
  78.         android:layout_height="wrap_content"  
  79.         android:id="@+id/edittext5"  
  80.         android:layout_margin="10dp"  
  81.         android:numeric="decimal|signed"  
  82.         android:layout_marginTop="10dp"/>  
  83.       
  84. </LinearLayout>  

代碼:http://download.csdn.net/detail/shark0017/7623047

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章