第3章Android常用基本控件我们在进行界面布局时,添加的按钮、文本框、编辑框和图片等,都是Android的基本控件。这些控件实现了程序的一些基本功能。本章将针对这类控件进行详细的介绍,使读者掌握基本控件的使用,开发出简单的Android程序。3.1文本控件概述Android系统提供给用户已经封装好的界面控件称为系统控件。系统控件更有利于帮助用户进行快速开发,同时能够使Android系统中应用程序的界面保持一致性。3.1.1控件属性Android支持的基本控件有以下几种,如图3.1所示。TextView文本框EditText编辑框Button按钮ImageViewButton按钮ToggleButton按钮RadioButton单选按钮CheckBox多选按钮图3.1基本控件注意:由于篇幅有限,图中所列并非Android支持的所有基本控件。Android的控件,一般是在res/layout下的布局文件中声明使用。声明的同时,还要设置控件的属性,控制其在界面中的显示效果。设置控件的属性有两种方法,一种是在布局文件中设置参数,另一种是在代码中调用对应方法实现。控件常用属性及其对应方法如表3-1所示。第3章Android常用基本控件·37·表3-1控件常用属性及其对应方法属性名称对应方法说明idsetId(intid)设置该控件的idlayout_widthsetWidth(intpixels)设置该控件的宽度layout_heightsetHeight(intpixels)设置该控件的高度3.1.2控件使用在布局文件的GraphicalLayout视图中有一个Palette面板。该面板中包含了Android中的所有控件。我们在使用控件时,可以直接拖动所需控件到右侧手机界面,如图3.2所示,添加了一个Button控件。也可以手动编辑代码添加控件。图3.2添加控件在布局文件中声明的控件,只负责界面显示。如果要想使用控件实现某些具体功能,就需要在Activity中编辑代码实现。实现过程如下:(1)使用super.setContentView(R.layout.某布局layout文件名)来加载布局文件;(2)使用super.findViewById(R.id.控件的ID)获取控件引用;(3)使用这个引用对控件进行操作,例如添加监听,设置内容等。3.2文本类控件文本类控件主要用于在界面中显示文本,包含TextView和EditText两种。下面我们将详细介绍。3.2.1TextViewTextView是Android程序开发中最常用的控件之一,它一般使用在需要显示一些信息的时候,它不能输入,只能通过初始化设置或在程序中修改。TextView常用属性及其对应方法如表3-2所示。第1篇Android开发基础·38·表3-2TextView常用属性及对应方法说明属性名称对应方法说明android:autoLinksetAutoLinkMask(int)设置是否将指定格式的文本转化为可点击的超链接显示。传入的参数值可取ALL、EMAIL_ADDRESSES、MAP_ADDRESSES、PHONE_NUMBERS和WEB_URLSandroid:heightsetHeight(int)定义TextView的准确高度,以像素为单位android:widthsetWidth(int)定义TextView的准确宽度,以像素为单位android:singleLinesetTransformationMethod(TransformationMethod)设置文本内容只在一行内显示android:textsetText(CharSequence)为TextView设置显示的文本内容android:textColorsetTextColor(ColorStateList)设置TextView的文本颜色android:textSizesetTextSize(float)设置TextView的文本大小android:textStylesetTypeface(Typeface)设置TextView的文本字体android:ellipsizesetEllipsize(TextUtils.TruncateAt)如果设置了该属性,当TextView中要显示的内容超过了TextView的长度时,会对内容进行省略,可取的值有start、middle、end和marqueeTextView文本字体属性示意图如图3.3所示。图3.3TextView文本字体属性示意图TextView语法格式如下:TextView!--TextView边框包围内容--android:layout_width=android:layout_height=!--TextView准确高度宽度--android:width=android:height=android:text=!--字体大小--android:textSize=android:textColor=!--字体格式--android:textStyle=!--文本显示位置--android:gravity=!--是否转为可点击的超链接形式--android:autoLink=!--是否只在一行内显示全部内容--android:singleLine=android:ellipsize=/【示例3-1】TextView的使用。新建项目TextView,在布局中添加三个TextView。第第3章Android常用基本控件·39·一个TextView的文本以web形式显示“”,第二个TextView的文本只进行一些字体设置,第三个TextView的文本以省略尾部内容显示26个英文字母。运行程序,效果如图3.4所示。布局代码如下:TextViewandroid:id=@+id/textView1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=@string/tv1android:textSize=20spandroid:autoLink=webandroid:singleLine=true/TextViewandroid:id=@+id/textView2android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_alignParentLeft=trueandroid:layout_below=@+id/textView1android:layout_marginTop=20dpandroid:textSize=30spandroid:textColor=#0000FFandroid:textStyle=italicandroid:text=@string/tv2/TextViewandroid:id=@+id/textView3android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_alignParentLeft=trueandroid:layout_below=@+id/textView2android:layout_marginTop=20dpandroid:textSize=30spandroid:singleLine=trueandroid:ellipsize=endandroid:text=@string/tv3/图3.4TextView控件属性值id@+id/textview1textSize20spauto_LinkwebsingleLinetrueTextViewtext@+id/textview2textSize30sptextColor#0000fftextStyleitalicTextViewtextTextViewid@+id/textview3textSize30spsingleLinetrueellipsizeendTextViewtextabcdefghijklmnopqrstuvwxyz第1篇Android开发基础·40·3.2.2EditText我们在第一次使用一些应用软件时,常常需要输入用户名和密码进行注册和登录。实现此功能,就需要使用Android系统中的编辑框EditText。EditText也是一种文本控件,除了TextView的一些属性外,EditText还有一些特有的属性,如表3-3所示。表3-3EditText常用属性及对应方法说明属性名称对应方法说明android:linessetLines(int)通过设置固定的行数来决定EditText的高度android:maxLinessetMaxLines(int)设置最大的行数android:minLinessetMinLines(int)设置最小的行数android:inputTypesetTransformationMethod(TransformationMethod)设置文本框中的内容类型,可以是密码、数字、电话号码等类型android:scrollHorizontallysetHorizontallyScrolling(boolean)设置文本框是否可以水平滚动android:capitalizesetKeyListener(KeyListener)如果设置,自动转换用户输入的内容为大写字母android:hintsetHint(int)文本为空时,显示提示信息android:maxLengthsetFilters(InputFilter)设置最大显示长度Edittext属性示意图如图3.5所示。图3.5Edittext属性示意图EditText语法格式如下:EditText!--文本提示内容--android:hint=!--文本内容显示在固定行中--android:lines=!--文本最大显示长度--android:maxLength=!--文本显示类型--android:inputType=android:scrollHorizontally=/【示例3-2】EditText的使用。新建项目EditText,在布局文件中添加三个EditText。第3章Android常用基本控件·41·第一个提示输入密码;第二个输入电话号码;第三个输入内容全部转为大写,并限制文本长度。运行程序,效果如图3.6所示。布局代码如下:EditTextandroid:id=@+id/EditText1android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_alignParentLeft=trueandroid:layout_alignParentTop=trueandroid:password=trueandroid:hint=请输入密码/EditTextEditTextandroid:id=@+id/EditText2android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_alignParentLeft=trueandroid:layout_below=@+id/EditText1android:layout_marginTop=26dpandroid:phoneNumber=trueandroid:lines=1/EditTextandroid:id=@+id/EditText3android:layout_width=wrap_contentand