android学习---EditText

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

 

posted on 2013-08-28 22:05  leafu  阅读(423)  评论(0编辑  收藏  举报

导航