Android 中常见控件的介绍和使用

Posted ming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 中常见控件的介绍和使用相关的知识,希望对你有一定的参考价值。

1 TextView文本框

1.1 TextView类的结构

TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域。TextView类的层次关系如下:

java.lang.Object

    ↳ android.view.View

    ↳ android.widget.TextView

直接子类:

  Button, CheckedTextView, Chronometer, DigitalClock, EditText

间接子类:

  AutoCompleteTextView, CheckBox, CompoundButton, ExtractEditText,MultiAutoCompleteTextView, RadioButton, ToggleButton

1.2 TextView类的方法

主要方法

功能描述

返回值

TextView

TextView的构造方法

Null

getDefaultMovementmethod

获取默认的箭头按键移动方式

Movementmethod

getText

获得TextView对象的文本

CharSquence

length

获得TextView中的文本长度

Int

getEditableText

取得文本的可编辑对象,通过 这个对象可对TextView的文本进行操作,如在光标之后插入字符

Void

getCompoundPaddingBottom

返回底部填充物

Int

setCompoundDrawables

设置图像显示的位置,在 设置该Drawable资源之前需要调用setBounds(Rect)

Void

setCompoundDrawablesWithIn

trinsicBounds

设置Drawable图像的显示位置,但其边界不变

Void

setPadding

根据位置设置填充物

Void

getAutoLinkMask

返回自动连接的掩码

Void

setTextColor

设置文本显示的颜色

Void

setHighlightColor

设置文本选中时显示的颜色

Void

setShadowLayer

设置文本显示的阴影颜色

Void

setHintTextColor

设置提示文字的颜色

Void

setLinkTextColor

设置链接文字的颜色

Void

setGravity

设置当TextView超出了文本本身时横向以及垂直对齐

Void

getFreezesText

设置该视图是否包含整个文本,如果包含则返回真值,否则返回假值

Boolean

 

 

 

 

1.3 TextView标签的属性

XML属性

属性名称

描述

android:autoLink

设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)

android:autoText

如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。

android:bufferType

指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,

也就是说getText后可调用append方法设置文本内容。

android:capitalize

设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。

android:cursorVisible

设定光标为显示/隐藏,默认显示。

android:digits

设置允许输入哪些字符。如“1234567890.+-*/%\\n()”

android:drawableBottom

在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

在text的左边输出一个drawable,如图片。

android:drawablePadding

设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight

在text的右边输出一个drawable,如图片。

android:drawableTop

在text的正上方输出一个drawable,如图片。

android:editable

设置是否可编辑。这里无效果,参见EditView。

android:editorExtras

设置文本的额外的输入数据。在EditView再讨论。

android:ellipsize

设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

android:freezesText

设置保存文本的内容以及光标的位置。

android:gravity

设置文本位置,如设置成“center”,文本将居中显示。

android:hint

Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。比较奇怪的是TextView本来就相当于Label,怎么会不设置Text?!

android:imeOptions

附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。

android:imeActionId

设置IME动作ID。在EditView再做说明,

android:imeActionLabel

设置IME动作标签。在EditView再做说明。

android:includeFontPadding

设置文本是否包含顶部和底部额外空白,默认为true。

android:inputMethod

为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。

android:inputType

设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。

android:linksClickable

设置链接是否点击连接,即使设置了autoLink。

android:marqueeRepeatLimit

在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

android:ems

设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度,如图:

android:maxEms

设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:minEms

设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:maxLength

限制显示的文本长度,超出部分不显示。

android:lines

设置文本的行数,设置两行就显示两行,即使第二行没有数据。

android:maxLines

设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

android:minLines

设置文本的最小行数,与lines类似。

android:lineSpacingExtra

设置行间距。

android:lineSpacingMultiplier

设置行间距的倍数。如”1.2”

android:numeric

如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。

android:password

以小点”.”显示文本

android:phoneNumber

设置为电话号码的输入方式。

android:privateImeOptions

设置输入法选项,此处无用,在EditText将进一步讨论。

android:scrollHorizontally

设置文本超出TextView的宽度的情况下,是否出现横拉条。

android:selectAllOnFocus

如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。

android:shadowColor

指定文本阴影的颜色,需要与shadowRadius一起使用。效果:

android:shadowDx

设置阴影横向坐标开始位置。

android:shadowDy

设置阴影纵向坐标开始位置。

android:shadowRadius

设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

android:singleLine

设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text

设置显示文本.

android:textAppearance

设置文字外观。如“?android:attr/textAppearanceLargeInverse

”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor

设置文本颜色

android:textColorHighlight

被选中文字的底色,默认为蓝色

android:textColorHint

设置提示信息文字的颜色,默认为灰色。与hint一起使用。

android:textColorLink

文字链接的颜色.

android:textScaleX

设置文字之间间隔,默认为1.0f。分别设置0.5f/1.0f/1.5f/2.0f效果如下:

 

android:textSize

设置文字大小,推荐度量单位”sp”,如”15sp”

android:textStyle

设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

android:typeface

设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height

设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

android:maxHeight

设置文本区域的最大高度

android:minHeight

设置文本区域的最小高度

android:width

设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)。

android:maxWidth

设置文本区域的最大宽度

android:minWidth

设置文本区域的最小宽度

 

 

1.4 TextView的使用

我们可以在XML布局文件中声明及设置TextView,也可以在代码中生成TextView组件。

在xml布局中:

 //显示超链接:

<TextView android:id="@+id/textView0" android:layout_width="fill_parent" android:layout_height="wrap_content"

android:textColor="#FF0000"

android:textSize="18dip" android:background="#FFFFFF" android:text="拨打手机:13888888888"

android:gravity="center_vertical|center_horizontal" android:autoLink="phone" />

 

<TextView android:id="@+id/textView1" android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textColor="#FF0000"

android:textSize="18dip" android:background="#00FF00"

android:text="Google搜索:http://www.google.com.hk" android:gravity="center_vertical|center_horizontal"

android:autoLink="web" />

 

<TextView android:id="@+id/textView2" android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textColor="#FF0000"

android:textSize="18dip"

android:background="#FFFF00"

android:text="发送邮件:1007857613@qq.com"

android:gravity="center_vertical|center_horizontal" android:autoLink="email" />

 

//设置文字的滚屏

<TextView android:id="@+id/textView3" android:layout_width="fill_parent"

android:layout_height="20dp" android:textSize="18dip"

android:ellipsize="marquee" android:focusable="true"

android:marqueeRepeatLimit="marquee_forever"

android:focusableInTouchMode="true"

android:scrollHorizontally="true"

android:text="文字滚屏文字跑马灯效果加长加长加长加长加长加长加长加长加长加长加长加长"

android:background="#FF0000"

android:textColor="#FFFFFF">

   </TextView>

 

//设置字符阴影

<TextView android:id="@+id/TextView4" android:layout_width="fill_parent"

android:layout_height="wrap_content" android:textSize="18dip"

android:background="#69541b" android:textColor="#FFFFFF" android:text="设置字符串阴影颜色为绿色"

android:shadowColor="#45b97c" android:shadowRadius="3.0"

android:gravity="center_vertical|center_horizontal" />

   //设置字符的外形

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content" android:textSize="18dip"

android:background="#FFFFFF" android:textColor="#FF0000" android:text="设置文字外形为italic"

android:textStyle="italic" android:gravity="center_vertical|center_horizontal" />

 

</LinearLayout>

 

在代码中:

/动态创建textView

      linearLayout = (LinearLayout)findViewById(R.id.linearLayout01);

      param  = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,

           LinearLayout.LayoutParams.WRAP_CONTENT);

        LinearLayout layout1 = new LinearLayout(this);

      layout1.setOrientation(LinearLayout.HORIZONTAL);

        TextView tv = new TextView(this);

        tv.setId(200);

        tv.setText("动态创建TextView");

        tv.setBackgroundColor(Color.GREEN);

        tv.setTextColor(Color.RED);

        tv.setTextSize(20);

        layout1.addView(tv, param);

        linearLayout.addView(layout1, param);

 

效果图:

 

 

 

2 EditText编辑框

2.1 EditText类的结构

EditText和TextView的功能基本类似,他们之间的主要区别在于EditText提供了可编辑的文本框。

java.lang.Object

android.view.View

android.widget.TextView        

android.widget.EditText

 

直接子类:

AutoCompleteTextView, ExtractEditText

 

间接子类:

MultiAutoCompleteTextView

 

2.2 EditText常用的方法

方法

功能描述

返回值

setImeOptions

设置软键盘的Enter键

void

getImeActionLable

设置IME动作标签

Charsequence

getDefaultEditable

获取是否默认可编辑

boolean

setEllipse

设置文件过长时控件的显示方式

void

setFreeezesText

设置保存文本内容及光标位置

void

getFreeezesText

获取保存文本内容及光标位置

boolean

setGravity

设置文本框在布局中的位置

void

getGravity

获取文本框在布局中的位置

int

setHint

设置文本框为空时,文本框默认显示的 字符

void

getHint

获取文本框为空时,文本框默认显示的 字符

Charsequence

setIncludeFontPadding

设置文本框是否包含底部和顶端的额外空白

void

setMarqueeRepeatLimit

在ellipsize指定marquee的情况下,设置重复滚动的次数,

当设置为marquee_forever时表示无限次

void

 

2.3 EditText标签的主要属性

属性名称

描述

android:autoLink

设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)。这里只有在同时设置text时才自动识别链接,后来输入的无法自动识别。

android:autoText

自动拼写帮助。这里单独设置是没有效果的,可能需要其他输入法辅助才行,效果参见视频

android:bufferType

指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,

也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1这里2

android:capitalize

设置英文字母大写类型。设置如下值:sentences仅第一个字母大写;words每一个单词首字母大小,用空格区分单词;characters每一个英文字母都大写。在模拟器上用PC键盘直接输入可以出效果,但是用软键盘无效果。

android:cursorVisible

设定光标为显示/隐藏,默认显示。如果设置false,即使选中了也不显示光标栏。

android:digits

设置允许输入哪些字符。如“1234567890.+-*/%\\n()”

android:drawableTop

在text的正上方输出一个drawable。在EditView中的效果比较搞笑:,居然在文本框里,而且删不了。

android:drawableBottom

在text的下方输出一个drawable(如图片)。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft

在text的左边输出一个drawable(如图片)。

android:drawablePadding

设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight

在text的右边输出一个drawable,如图片。

android:editable

设置是否可编辑。仍然可以获取光标,但是无法输入。

android:editorExtras

指定特定输入法的扩展,如“com.mydomain.im.SOME_FIELD”。源码跟踪至EditorInfo.extras,暂无相关实现代码。

android:ellipsize

设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

android:freezesText

设置保存文本的内容以及光标的位置。参见:这里

android:gravity

设置文本位置,如设置成“center”,文本将居中显示。

android:hint

Text为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。

android:imeOptions

设置软键盘的Enter键。有如下值可设置:normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionNext,actionDone,flagNoExtractUi,flagNoAccessoryAction,flagNoEnterAction。可用’|’设置多个。这里仅设置显示图标之用,参见文章末尾例子。

android:imeActionId

设置IME动作ID,在onEditorAction中捕获判断进行逻辑操作。

android:imeActionLabel

设置IME动作标签。但是不能保证一定会使用,猜想在输入法扩展的时候应该有用。

android:includeFontPadding

设置文本是否包含顶部和底部额外空白,默认为true。

android:inputMethod

为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。关于自定义输入法参见这里

sentences仅第一个字母大写;words每一个单词首字母大小,用空格区分单词;characters每一个英文字母都大写

android:inputType

设置文本的类型,用于帮助输入法显示合适的键盘类型。有如下值设置:none、text、textCapCharacters字母大小、textCapWords单词首字母大小、textCapSentences仅第一个字母大小、textAutoCorrect、textAutoComplete自动完成、textMultiLine多行输入、textImeMultiLine输入法多行(如果支持)、textNoSuggestions不提示、textEmailAddress电子邮件地址、textEmailSubject邮件主题、textShortMessage短信息(会多一个表情按钮出来,点开如下图:

)、textLongMessage长讯息?、textPersonName人名、textPostalAddress地址、textPassword密码、textVisiblePassword可见密码、textWebEditText作为网页表单的文本、textFilte文本筛选过滤、textPhonetic拼音输入、numberSigned有符号数字格式、numberDecimal可带小数点的浮点格式、phone电话号码、datetime时间日期、date日期、time时间。部分参考这里

android:marqueeRepeatLimit

在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

android:ems

设置TextView的宽度为N个字符的宽度。参见TextView中此属性的截图。

android:maxEms

设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:minEms

设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:maxLength

限制输入字符数。如设置为5,那么仅可以输入5个汉字/数字/英文字母。

android:lines

设置文本的行数,设置两行就显示两行,即使第二行没有数据。

android:maxLines

设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

android:minLines

设置文本的最小行数,与lines类似。

android:linksClickable

设置链接是否点击连接,即使设置了autoLink。

android:lineSpacingExtra

设置行间距。

android:lineSpacingMultiplier

设置行间距的倍数。如”1.2”

android:numeric

如果被设置,该TextView有一个数字输入法。有如下值设置:integer正整数、signed带符号整数、decimal带小数点浮点数。

android:password

以小点”.”显示文本

android:phoneNumber

设置为电话号码的输入方式。

android:privateImeOptions

提供额外的输入法选项(字符串格式)。依据输入法而决定是否提供,如这里所见。自定义输入法继承

InputMethodService。这篇文章也许有帮助。

android:scrollHorizontally

设置文本超出TextView的宽度的情况下,是否出现横拉条。

android:selectAllOnFocus

如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。

android:shadowColor

指定文本阴影的颜色,需要与shadowRadius一起使用。参见TextView中此属性的截图。

android:shadowDx

设置阴影横向坐标开始位置。

android:shadowDy

设置阴影纵向坐标开始位置。

android:shadowRadius

设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

android:singleLine

设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text

设置显示文本.

android:textAppearance

设置文字外观。如“?android:attr/textAppearanceLargeInverse

”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor

设置文本颜色

android:textColorHighlight

被选中文字的底色,默认为蓝色

android:textColorHint

设置提示信息文字的颜色,默认为灰色。与hint一起使用。

android:textColorLink

文字链接的颜色.

android:textScaleX

设置文字缩放,默认为1.0f。参见TextView的截图。

android:textSize

设置文字大小,推荐度量单位”sp”,如”15sp”

android:textStyle

设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

android:typeface

设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height

设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

android:maxHeight

设置文本区域的最大高度

android:minHeight

设置文本区域的最小高度

android:width

设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里

android:maxWidth

设置文本区域的最大宽度

android:minWidth

设置文本区域的最小宽度

 

2.4 EditText的使用 

EditText和TextView一样,既可以在Xml中声明实现,也可以在代码中动态的生成,关于在代码动态生成和TextView的类似,这里就不在赘述。下面以一个实例来说明EditText的简单使用:

 XML布局中:

<TextView android:text="TextView" android:id="@+id/textView1"

      android:layout_height="wrap_content" android:layout_width="fill_parent"></TextView>

 

 <!-- 用于输入数字的文本框 -->

   <EditText android:id="@+id/editText1" android:inputType="date"

      android:layout_width="fill_parent" android:layout_height="wrap_content"

      android:maxLength="40" android:hint="输入电话号码" android:textColorHint="#FF000000"

      android:phoneNumber="true" android:imeOptions="actionGo"></EditText>

 

   <!-- 用于输入密码的文本框 -->

   <EditText android:id="@+id/editText2" android:inputType="date"

      android:layout_width="fill_parent" android:layout_height="wrap_content"

      android:maxLength="40" android:hint="输入密码" android:textColorHint="#FF000000"

      android:password="true" android:imeOptions="actionSearch"></EditText>

 

/rec/values/string.xml中:

string  name="RadioButton1">Windows</string >

    <string  name="RadioButton2">Linux</string >

    <string  name="RadioButton3">Mocos</string >

    <string  name="RadioButton4">Java</string >

 

Activity中让editText显示在屏幕上并实现监听:

/**

         * 获得TextView对象

         * 获得两个EditTextView对象

         */

        textview = (TextView)findViewById(R.id.textView1);

        edittext_num = (EditText)findViewById(R.id.editText1);

        edittext_pass= (EditText)findViewById(R.id.editText2);

        /**

         * 对EditText进行监听

         * 获得编辑框里面的内容并显示

         */

        edittext_num.addTextChangedListener(new TextWatcher() {

       

        @Override

        public void onTextChanged(CharSequence s, int start, int before, int count) {

          

           //if(!(textview.getText().toString()==null))

              textview.setText("edittext_num:"+edittext_num.getText().toString());

        }

       

        @Override

        public void beforeTextChanged(CharSequence s, int start, int count,

              int after) {

           // TODO Auto-generated method stub

          

        }

       

        public void afterTextChanged(Editable s) {

           // TODO Auto-generated method stub

          

        }

      });

          

        edittext_pass.addTextChangedListener(new TextWatcher() {

       

        @Override

        public void onTextChanged(CharSequence s, int start, int before, int count) {

          

           //if(!(textview.getText().toString()==null))

              textview.setText("你正在编辑edittext_pass");

        }

        public void beforeTextChanged(CharSequence s, int start, int count,

              int after) {

           // TODO Auto-generated method stub

        }

          

        public void afterTextChanged(Editable s) {

           // TODO Auto-generated method stub

        }

      });

}

示例的效果图如下:

 

 

3 Button按钮

3.1Button类的结构

Button类的层次关系如下:

java.lang.Object

    ↳ android.view.View

        ↳ android.widget.TextView

             ↳android.widget.Button

 

直接子类:

     CompoundButton

         

间接子类:

CheckBox, RadioButton, ToggleButton

 

3.2 Button类的方法

方法

功能描述

返回值

Button

Button类的构造方法

Null

onKeyDown

当用户按键时,该方法调用

Boolean

onKeyUp

当用户按键弹起后,该方法被调用

Boolean

onKeyLongPress

当用户保持按键时,该方法被调用

Boolean

onKeyMultiple

当用户多次调用时,该方法被调用

Boolean

invalidateDrawable

刷新Drawable对象

void

scheduleDrawable

定义动画方案的下一帧

void

unscheduleDrawable

取消scheduleDrawable定义的动画方案

void

onPreDraw

设置视图显示,列如在视图显示之前调整滚动轴的边界

Boolean

sendAccessibilityEvent

发送事件类型指定的AccessibilityEvent。发送请求之前,需要检查Accessibility是否打开

void

sendAccessibilityEventUnchecked

发送事件类型指定的AccessibilityEvent。发送请求之前,不需要检查Accessibility是否打开

void

setOnKeyListener

设置按键监听

void

 

3.3 Button标签的属性

由于Button是继承TextView,所以TextView有的属性,它都能用。

属性

描述

android:layout_height

设置控件高度。可选值:fill_parent,warp_content,px

android:layout_width

设置控件宽度,可选值:fill_parent,warp_content,px

android:text

设置控件名称,可以是任意字符

android:layout_gravity

设置控件在布局中的位置,可选项:top,left,bottom,right,center_vertical,fill_vertica,fill_horizonal,center,fill等

android:layout_weight

设置控件在布局中的比重,可选值:任意的数字

android:textColor

设置文字的颜色

android:bufferType

设置取得的文本类别,normal、spannable、editable

android:hint

设置文本为空是所显示的字符

android:textColorHighlight

设置文本被选中时,高亮显示的颜色

android:inputType

设置文本的类型,none,text,textWords等

 

3.4 Button的使用

Button可以在xml中声明,也可以在代码中动态创建。

在xml中:

<Button android:orientation="vertical" 

       android:layout_height="wrap_content"  android:id="@+id/button1"

       android:layout_width="wrap_content"

       android:textColor="#0000FF"

       android:text="这是button1,可以点击" />

       <Button android:orientation="vertical" 

       android:layout_height="wrap_content"  android:id="@+id/button2"

       android:layout_width="wrap_content"

       android:textColor="#CD0000"

       android:text="这是button2,可以点击" />

       <Button android:orientation="vertical" 

       android:layout_height="wrap_content"  android:id="@+id/button3"

       android:layout_width="wrap_content"

      android:textColor="#000000"

       android:text="这是button3,可以点击" />

 

 

在代码中创建Button:

button4 = new Button(this);

        button4.setId(100);

        button4.setText("动态创建的Button");

        button4.setTextColor(Color.GREEN);

 

创建好了Button后,我们就可以对其进行监听了,其中有两种方式:

一种是继承OnClickListenner接口:

public class ButtonActivity extends Activity implements OnClickListener{

button1 = (Button)findViewById(R.id.button1);

button1.setOnClickListener(this);

public void onClick(View v) {

  switch(v.getId()){

      case R.id.button1:

       .........

      break;

}

}

}

另一种方式是:

public class ButtonActivity extends Activity{

  button1 = (Button)findViewById(R.id.button1);

button1.setOnClickListener(new Button.OnClickListener(){

 

      public void onClick(View v) {

        // TODO Auto-generated method stub

        ..........

      }

         

       });

 

 

 

 

效果图:

 

 

4 ImageButton图片按钮

4.1 ImageButton类的结构

ImageButton是带有图标的按钮,它的类层次关系如下:

java.lang.Object

android.view.View

android.widget.ImageView

android.widget.ImageButton

4.1 ImageButton类常用的方法

方法

功能描述

返回值

ImageButton

构造函数

null

setAdjustViewBounds

设置是否保持高宽比,需要与maxWidth和maxHeight结合起来一起使用

Boolean

getDrawable

获取Drawable对象,获取成功返回Drawable,否则返回null

Drawable

getScaleType

获取视图的填充方式

ScaleType

setScaleType

设置视图的填充方式,包括矩阵、拉伸等七种填充方式

void

setAlpha

设置图片的透明度

void

setMaxHeight

设置按钮的最大高度

void

setMaxWidth

设置按钮的最大宽度

void

setImageURI

设置图片的地址

void

setImageResource

设置图片资源库

void

setOnTouchListener

设置事件的监听

Boolean

setColorFilter

设置颜色过滤

void

 

4.2 ImageButton标签的常用属性

 

属性

Android常见界面控件(基础入门)

Android 片段与复合控件

android控件随手势旋转

Android从零单排系列十《Android视图控件——RadioButton》

Android从零单排系列十《Android视图控件——RadioButton》

Android从零单排系列十《Android视图控件——RadioButton》

(c)2006-2024 SYSTEM All Rights Reserved IT常识