- package com.kale.edittext02;
- import java.lang.reflect.Field;
- import java.util.Random;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.Bundle;
- import android.support.v7.app.ActionBarActivity;
- import android.text.Spannable;
- import android.text.SpannableString;
- import android.text.style.ImageSpan;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- public class MainActivity extends ActionBarActivity {
- private EditText editText;
- private Button button;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- editText=(EditText)findViewById(R.id.edittext);
- button=(Button)findViewById(R.id.button);
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- //產生隨機數 隨機數是從0開始
- int randomId= new Random().nextInt(7);//nextInt(7)的範圍是0-6
- try {
- //獲取表情圖片文件名
- Field field=R.drawable.class.getDeclaredField("f" + randomId);
- int resourceId=Integer.parseInt(field.get(null).toString());
- //在Android中要顯示圖片信息,必須使用BitMap的對象來加載
- Bitmap bitmap=BitmapFactory.decodeResource(getResources(), resourceId);
- //要讓圖片替代指定的文字就要用ImageSpan
- ImageSpan imageSpan = new ImageSpan(MainActivity.this, bitmap);
- //f就是圖片的前綴名
- SpannableString spannableString = new SpannableString("f");
- //設置字體
- spannableString.setSpan(imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- editText.append(spannableString);
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/edittext"
- android:layout_marginTop="10dp"/>
- <Button
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/button"
- android:text="添加表情"/>
- <TextView
- android:id="@+id/textview1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="使用android:digits屬性(輸入數字)" />
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/edittext1"
- android:layout_margin="10dp"
- android:digits="0123456789"
- android:layout_marginTop="10dp"/>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/textview2"
- android:text="使用android:digits屬性(輸入26個小寫字母)"/>
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/edittext2"
- android:layout_margin="10dp"
- android:digits="abcdefghijklmnopqrstuvwxyz"
- android:layout_marginTop="10dp"/>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/textview3"
- android:text="使用android:inputType屬性(輸入數字)"/>
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/edittext3"
- android:layout_margin="10dp"
- android:inputType="number|textCapCharacters"
- android:layout_marginTop="10dp"/>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/textview4"
- android:text="使用android:inputType屬性(輸入Email)"/>
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/edittext4"
- android:layout_margin="10dp"
- android:inputType="textEmailAddress"
- android:layout_marginTop="10dp"/>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/textview5"
- android:text="使用android:inputType屬性(輸入有符號的浮點數)"/>
- <EditText
- android:layout_width="200dp"
- android:layout_height="wrap_content"
- android:id="@+id/edittext5"
- android:layout_margin="10dp"
- android:numeric="decimal|signed"
- android:layout_marginTop="10dp"/>
- </LinearLayout>