文本款(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 自学之基本界面组件(上)的更多相关文章

  1. Android 自学之基本界面组件(下)

    按钮(Button)与图片按钮(ImageButton)组件的功能和用法 Button继承了TextView,ImageButton继承了Button.不管是Button还是ImageButton,他 ...

  2. Android学习使用基本界面组件(下拉框,单选框,复选框,数字转轮,滚动条)

    (一)建立单选框按钮 RadioGroup和RadioButton建立单选框按钮 字符串资源文件: <resources> <string name="app_name&q ...

  3. Android中如何区分界面组件创建和销毁的类型

    本文主要描述: 1.分辨系统杀掉退出还是用户主动退出2.分辨全新的创建还是系统恢复性的创建 1.分辨系统杀掉退出还是用户主动退出 当一个组件失去焦点后,系统有可能为了释放资源而杀掉这个组件,这个时候系 ...

  4. Android界面组件的四种启动方式

    Android界面组件启动有四种方式 standard,singleTop,singleTask,singleInstance. standard:每次调用都会都会产生新的组件. singletop: ...

  5. Android 自学之画廊视图(Gallery)功能和用法

    Gallery与之前讲的Spinner有共同的父类:AbsSpinner,表明Gallery和Spinner都是一个列表框.他们之间的区别在于Spinner显示的是一个垂直的列表框,而Gallery显 ...

  6. Android 自学之进度条ProgressBar

    进度条(ProgressBar)也是UI界面中的一种非常使用的组件,通常用于向用户显示某个耗时完成的百分比.因此进度条可以动态的显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应, ...

  7. Android 自学之帧布局 FrameLayout

    帧布局(FrameLayout)直接继承了ViewGroup组件: 帧布局容器为每一个加入其中的组件都创建了一个空白的区域,这个区域我们称之为一帧,所有每个组件都占据一帧,这些都会根据gravity属 ...

  8. 收藏的Android很好用的组件或者框架。

    收藏的Android很好用的组件或者框架. android框架  先说两个站点: http://www.androidviews.net/ 非常好的国外开源码站,就是訪问速度有点慢啊 http://w ...

  9. Android 开发:由模块化到组件化(一)

    在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发 以下高能,请做好心理准备,看不懂请发私信来交流 ...

随机推荐

  1. Webdriver API (一)

    (转载) 1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guid ...

  2. 第一个GTK+程序

    在这一章节中,我们将开始编写第一个GTK+程序. 超级简单的例子 我们要“制造”一个超级简单的GTK+程序.就是显示一个空白的窗口. #include <gtk/gtk.h> int ma ...

  3. jquery选择器返回值

    jquery选择器$('selector')返回的不是数组,而是封装好的jquery对象.但这个对象有一个特别的地方,就是查询到的节点被以下标为属性,添加到了jquery对象上,所以它看起来像数组,因 ...

  4. NOR型flash与NAND型flash的区别

    1) 闪存芯片读写的基本单位不同  应用程序对NOR芯片操作以“字”为基本单位.为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块,有时候块内还分成扇区.读写时 ...

  5. uvalive 4795 Paperweight

    题意:给出一个5个顶点的多面体以及多面体内一点P.求让 多面体不同的方式(即以不同的面)放在地面上,设这个着地的面为A,多面体重心在A上的投影为B,在保证B在A内部且距离A的各个边界不小于0.2的前提 ...

  6. mysql 处理中文乱码问题

    CREATE TABLE tbl_score( `ID` INT NOT NULL, `score` DEC(,) NOT NULL, `subject` VARCHAR() NOT NULL ); ...

  7. POJ1038 - Bugs Integrated, Inc.(状态压缩DP)

    题目大意 要求你在N*M大小的主板上嵌入2*3大小的芯片,不能够在损坏的格子放置,问最多能够嵌入多少块芯片? 题解 妈蛋,这道题折腾了好久,黑书上的讲解看了好几遍才稍微有点眉目(智商捉急),接着看了网 ...

  8. work2

    回答问题: 描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式,  或者其它方法) 让整个程序的架构不至于崩溃的? 答:诚然,问题给出了很多选项如-a,-v,- ...

  9. INPUT输入框灰体提示

    INPUT输入框灰体提示 <input type="text" value='15 words limit' style="color:#999999" ...

  10. [iOS基础控件 - 4.2] APP列表 字典转模型Model

    A.使用字典加载数据的缺点 1.用户自行指定key,容易出错 2.存入.取出都需要key,容易混乱   B.模型 (MVC中的model) 1.字典与模型对比: (1)字典:存储数据,通过字符串类型的 ...