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 }
MainActivity.java
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>
activity_main.xml