Android 自学之基本界面组件(上)
文本款(TextView)和编辑框(EditText)的功能和用法
TextView直接继承了View,他还是EditText、Button两个UI组件的父类,TextView的作用就是在界面上显示文字(相当于Java中AWT中标签[JLabel],但有比他强大些)。
TextView类及其子类的类图如图所示:

TextView的XML属性及相关方法和说明:
| XML属性 | 相关方法 | 说明 |
| android:autoLink | setAutoLinkMask(int) | 是否符合指定格式的文本转换为可单击的超链接形式 |
| android:cursorVisible | setCursorVisible(boolean) | 设置该文本框的光标是否可见 |
| android:drawableBottom |
setCompounDrawablesWithIntrinsicBounds (Drawable,Drawable,Drawable,Drawable) |
在文本框内文本的底端绘制指定图像 |
| android:drawableLeft |
setCompounDrawablesWithIntrinsicBounds (Drawable,Drawable,Drawable,Drawable) |
在文本框内文本的左边绘制指定图像 |
| android:drawablePadding |
setCompounDrawablesWithIntrinsicBounds (Drawable,Drawable,Drawable,Drawable) |
设置文本框内文本与图形之间的间距 |
| android:drawableRight |
setCompounDrawablesWithIntrinsicBounds (Drawable,Drawable,Drawable,Drawable) |
在文本框内文本的右边绘制指定图像 |
| android:drawableTop |
setCompounDrawablesWithIntrinsicBounds (Drawable,Drawable,Drawable,Drawable) |
在文本框内文本的顶端绘制指定图像 |
| android:editable | 设置该文本是否允许编辑 | |
| android:ellipsize | 设置当显示的文本超过TextView的长度是如何处理文本内容 | |
| android:gracity | setGravity(int) | 设置文本框内文本的对齐方式 |
| android:height | setHeight(int) | 设置该文本框的高度(以pixel为单位) |
| android:hint | setHint(int) | 设置当该文本框内容为空时,文本框内默认显示的提示文本 |
| android:minHeight | setMinHeight(int) | 设置该文本框的最小高度(以pixel为单位) |
| android:maxHeight | setMaxHeight(int) | 设置该文本框的最大高度(以pixel为单位) |
| android:minWidth | setMinWidth(int) | 设置该文本框的最小宽度(以pixel为单位) |
| android:maxWidth | setMaxWidth(int) | 设置该文本框的最大宽度(以pixel为单位) |
| android:lines | setLines(int) | 设置该文本框默认占几行 |
| android:MiLines | setMiLines(int) | 设置该文本框最少占几行 |
| android:MaxLines | setMaxLines(int) | 设置该文本框最多占几行 |
| android:password | setTransformationMethod(TransfirmationMethod) | 设置该文本框是一个密码框(以点代替字符) |
| android:phoneNumber | setKevListener(KeyListener) | 设置该文本框只能接受电话号码 |
| android:scrollHorizontally | setHorizontallyScorlling(boolean) | 设置当该文本框不够显示全部内容时是否允许水平滚动 |
| android:selectAllOnFocus | setSelectAllOnFocus(boolean) | 如果文本框的内容可选择,设置当它获得焦点时是否自动选中所有文本 |
| android:singleLine | setTransformationMethod | 设置该文本框是否为单行模式。如果设为true,文本框不会换行 |
| android:shadowColor | setShadowLayer(float,float,float,int) | 设置文本框内文本的阴影的颜色 |
| android:shadowDx | setShadowLayer(float,float,float,int) | 设置文本框内文本的阴影在水平方向的偏移 |
| android:shadowDy | setShadowLayer(float,float,float,int) | 设置文本框内文本的阴影在垂直方向的偏移 |
| android:shadowRadius | setShadowLayer(float,float,float,int) | 设置文本框内文本的阴影的角度 |
| android:text | setText(CharSequence) | 设置文本框内文本的内容 |
| android:textColor | setTextColor(ColorStateList) | 设置该文本框内文本的颜色 |
| android:tetColorHighlight | setHighlightColor(int) | 设置该文本框内文本被选中时的颜色 |
| android:textScaleX | setTextScaleX(float) | 设置该文本框内文本水平方向上的缩放因子 |
| android:textSize | setTextSize(float) | 设置该文本框内文本的字体大小 |
| android:textStyle | setTypeface(Typeface) | 设置该文本框内文本的字体风格,如粗体,斜体 |
| android:typeface | setTypeface(Typeface) | 设置该文本框内文本的字体 |
| android:width | setWidth(int) | 设置该文本框的宽度 |
上表中android:autoLink属性值是如下几个属性值的一个或几个,多个属性值之间用竖线隔开:
- none:不设置任何超链接
- web(对应于Linkify.WEB_URLS):将文本中的URL地址转换为超链接
- email(对应于Linkify.EMAIL_ADDRESSES):将文本中的E-mail地址转换为超链接
- phone(对应于Linkify.PHONE_NUMBERS):将文本中的电话号码转换为超练接
- map(对应于Linkify.MAP_ADDRESSES):将文本中的接到地址转换为超链接
- all:相当于指定weblemaillphonelmap
上表中android:ellipsize属性可支持如下几个属性值。
- none:不进行任何处理
- start:在文本开头部分进行省略
- middle:在文本中间部分进行省略
- end:在文本结尾出进行省略
- marquee:在文本结尾出以淡出的方式省略
下面我们用例子来例举上表中的一些属性:不同字体、不同颜色的文本、URL
layout/main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"> <!-- 设置字体为20pt -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我爱Java"
android:textSize="20pt"
/>
<!-- 设置中间省略 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="我爱Java我爱Java我爱Java我爱Java我爱Java我aaaJava"
android:ellipsize="middle"
/>
<!-- 对邮件增加链接 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="测试kongyeeku@163.com内容"
android:autoLink="email"
/>
<!-- 设置文字颜色 、大小,并使用阴影 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="测试文字"
android:shadowColor="#0000ff"
android:shadowDx="15.0"
android:shadowDy="20.0"
android:shadowRadius="45.0"
android:textColor="#ff0000"
android:textSize="25pt"
/>
<!-- 测试密码框 -->
<TextView android:id="@+id/passwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:password="true"
/> </LinearLayout>
所展现的效果图如下:

范例:带边框、图片的TextView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"> <!-- 通过android:background指定背景 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="带边框的文本"
android:background="@drawable/bg_border"
android:textColor="@color/abc_search_url_text_holo"
/> <!-- 通过android:drawableLeft绘制一张图片 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="带图片的文本"
android:drawableLeft="@drawable/ic_launcher"
/> </LinearLayout>
效果图:

范例:一个注册界面
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="用户名:"
android:textSize="10sp"
android:background="@drawable/bg_border"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请填写登录帐号"
android:selectAllOnFocus="true"
/>
</TableRow>
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="密码:"
android:textSize="10pt"
android:background="@drawable/bg_border"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"
/>
</TableRow>
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="电话号码:"
android:textSize="10pt"
android:background="@drawable/bg_border"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请填写您的电话号码"
android:selectAllOnFocus="true"
android:phoneNumber="true"
/>
</TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册"
/> </TableLayout>
上面代码里面的TextView是设置了背景图片的,所以在展示的效果图上你们呢会看到三个黑的框框,为什么三个框框的会有一个比另外两个小,那是因为我设置的宽度单位不一样(用户名的宽度是sp,其他的是用的pt);所展示的效果,效果图如下:

Android 自学之基本界面组件(上)的更多相关文章
- Android 自学之基本界面组件(下)
按钮(Button)与图片按钮(ImageButton)组件的功能和用法 Button继承了TextView,ImageButton继承了Button.不管是Button还是ImageButton,他 ...
- Android学习使用基本界面组件(下拉框,单选框,复选框,数字转轮,滚动条)
(一)建立单选框按钮 RadioGroup和RadioButton建立单选框按钮 字符串资源文件: <resources> <string name="app_name&q ...
- Android中如何区分界面组件创建和销毁的类型
本文主要描述: 1.分辨系统杀掉退出还是用户主动退出2.分辨全新的创建还是系统恢复性的创建 1.分辨系统杀掉退出还是用户主动退出 当一个组件失去焦点后,系统有可能为了释放资源而杀掉这个组件,这个时候系 ...
- Android界面组件的四种启动方式
Android界面组件启动有四种方式 standard,singleTop,singleTask,singleInstance. standard:每次调用都会都会产生新的组件. singletop: ...
- Android 自学之画廊视图(Gallery)功能和用法
Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...
- Android 自学之进度条ProgressBar
进度条(ProgressBar)也是UI界面中的一种非常使用的组件,通常用于向用户显示某个耗时完成的百分比.因此进度条可以动态的显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应, ...
- Android 自学之帧布局 FrameLayout
帧布局(FrameLayout)直接继承了ViewGroup组件: 帧布局容器为每一个加入其中的组件都创建了一个空白的区域,这个区域我们称之为一帧,所有每个组件都占据一帧,这些都会根据gravity属 ...
- 收藏的Android很好用的组件或者框架。
收藏的Android很好用的组件或者框架. android框架 先说两个站点: http://www.androidviews.net/ 非常好的国外开源码站,就是訪问速度有点慢啊 http://w ...
- Android 开发:由模块化到组件化(一)
在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发 以下高能,请做好心理准备,看不懂请发私信来交流 ...
随机推荐
- POJ2104 K-th Number 划分树 模板题啊
/*Source Code Problem: 2104 User: 96655 Memory: 14808K Time: 1282MS Language: G++ Result: Accepted S ...
- java.lang.ExceptionInInitializerError的原因(转)
这个错误是说变量初始化出现问题,通常出现在静态变量尤其是单例模式.这种问题往往是初始化顺序不对造成的,下面举个简单的例子. import java.util.HashMap; import java. ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- [读书笔记]了不起的node.js(二)
这周做项目做得比较散(应该说一直都是这样),总结就依据不同情境双开吧-这篇记录的是关于node的学习总结,而下一篇是做项目学到的web前端的知识. 1.HTTP篇 node的HTTP模块在第一篇时接触 ...
- 如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面? 什么是SPICE? SPICE (Simple Protocol for Independent Computi ...
- jira破解
JIRA是一个优秀的问题(or bugs,task,improvement,new feature )跟踪及管理软件. 它由Atlassian开发,采用J2EE技术.它正被广泛的开源软件组织,以 ...
- php获取post中的json数据的实现方法
最近用到腾讯微博与PHP交互,腾讯把json数据post给PHP(腾讯推送数据时,每条数据是一个json格式的数据包,作为post的数据体(请注意post数据体没有参数,不是key=value形式,整 ...
- (二)Bootstrap CSS 概览
在这一章中,我们将讲解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好.更快.更强壮的最佳实践. HTML 5 文档类型(Doctype) Bootstrap 使用了一些 H ...
- Java循环语句 for
语法: 特点:相比 while 和 do...while 语句结构更加简洁易读 例如,输出 1000 遍"我爱慕课网",使用 for 的实现代码为: 需要留心的几个小细节: 1. ...
- .Net基础学习
http://www.cnblogs.com/iPragmatic/p/4930396.html memcache的介绍与应用场景 http://www.cnblogs.com/nixi8/p/493 ...