1.EditText常用属性
EditText继承自TextView,所以EditText也拥有一些TextView中的属性和方法。EditText的常用属性有以下一些:
android:capitalize="sentences"//设置英文字母大写类型,sentences仅第一个字母大写;words每一个单词首字母大小,用空格区分单词;characters每 一个英文字母都大写
android:cursorVisible="true"//设定光标为显示或隐藏,默认为显示
android:digits="0123456789.abc#"//设置允许输入哪些字符
android:drawableTop//在Text的正上方输出一个drawable
android:drawableBottom//在Text的下方输出一个drawable
android::drawableLeft//在Text的左方输出一个drawable
android::drawableRight//在Text的右方输出一个drawable
android::editable="true" //设置是否可编辑
android::ellipsize="start"//设置当文字过长时,该控件的显示方式。start省略号显示在开头;end省略号显示在结尾;middle省略号显示在中间;marquee 跑马灯方式显示
android:hint="请输入内容!"//设置显示在EditText中的默认提示信息
android:inputType="none"设置文本的类型,用于帮助输入法显示合适的键盘类型。
可设置的参数如下:none、text、textCapCharacters字母大写、textCapWords单词首字母大写、textCapSentences仅第一个字母大小、textAutoCorr ect、textAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行、textNoSuggestions不提示、textEmailAddress电子 邮件地址、textEmailSubject邮件主题、textShortMessage短信息、textLongMessage长讯息、textPersonName人名、textPostalAddress地址、te xtPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numbe rSigned符号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间
android:numeric="integer"//设置输入的数字类型,integer整数,decimal小数,signed带符号整数
android:textColor = "#ff8c00"//设置字体颜色
android:textStyle="bold"//设置字体类型,黑体为bold, 斜体为italic, bolditalic
android:textSize="20dip"//设置字体大小
android:textScaleX="1.5"//设置字间距
android:singleLine="true"//设置单行输入模式,文字不能自动换行
2.在EditText中输入QQ表情图片
在EditText中输入QQ表情图片,需要使用到SpannableString类和ImageSpan类。
SpannableString类继承自android.text.Spanned,作用是对不可变的文本内容进行附加和分离操作。SpannableString类的常用方法有以下一些:
mSpannableString.CharAt(int i);//返回指定索引i处的字节
mSpannableString.getChars(int start, int end, char[] dest, int off);//获取从start到end的字符串
mSpannableString.getSpans(int queryStart, int queryEnd, Class kind);
mSpannableString.length();//返回字节数
mSpannableString.setSpan(Object what, int start, int end, int flags);//
mSpannableString.toString();//返回字符串
效果:
1 package com.example.myedittext; 2 3 import java.lang.reflect.Field; 4 import java.util.Random; 5 6 import android.app.Activity; 7 import android.graphics.Bitmap; 8 import android.graphics.BitmapFactory; 9 import android.os.Bundle; 10 import android.text.SpannableString; 11 import android.text.style.ImageSpan; 12 import android.view.View; 13 import android.widget.Button; 14 import android.widget.EditText; 15 16 public class MainActivity extends Activity { 17 18 private EditText edittext; 19 private Button button; 20 @Override 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_main); 24 edittext = (EditText)this.findViewById(R.id.edittext); 25 button = (Button)this.findViewById(R.id.button); 26 button.setOnClickListener(new View.OnClickListener() { 27 28 @Override 29 public void onClick(View v) { 30 // TODO Auto-generated method stub 31 int randomId = 1+new Random().nextInt(4); 32 33 try { 34 Field field = R.drawable.class.getDeclaredField("face" + randomId); 35 int resourceId = Integer.parseInt(field.get(null).toString()); 36 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId); 37 ImageSpan imagespan = new ImageSpan(MainActivity.this,bitmap); 38 SpannableString spannableString = new SpannableString("face"); 39 spannableString.setSpan(imagespan, 0, 4, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); 40 edittext.append(spannableString); 41 } catch (Exception e) { 42 // TODO Auto-generated catch block 43 e.printStackTrace(); 44 } 45 46 } 47 }); 48 } 49 50 }
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context=".MainActivity" > 11 12 <TextView 13 android:id="@+id/textview" 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:text="EditText中添加qq表情图片" /> 17 18 <EditText 19 android:id="@+id/edittext" 20 android:layout_width="match_parent" 21 android:layout_height="wrap_content" 22 android:layout_marginTop="10dp" /> 23 24 <Button 25 android:id="@+id/button" 26 android:layout_width="match_parent" 27 android:layout_height="wrap_content" 28 android:text="添加QQ表情 " /> 29 30 </LinearLayout>