第16讲 UI组件之TextView

Android系统所有UI类都是建立在View和ViewGroup这两类的基础上的。

所有View的子类称为widget;所有ViewGroup的子类称为Layout。

Android系统借鉴了java中的UI设计思想,包括事件响应机制和布局管理。

UI组件的简单分类(自己定义的):

1. Basic Views --- 常用的View,例如TextView,EditText和Button

2. Pick Views --- 允许用户进行选择的View,例如TimePicker和datePicker

3. List Views --- 显示大量项目的View,例如ListView和spinner

4.DisplayViews --- 显示图片的View,例如Gallery和mageSwitcher

5.Menus --- 显示额外的上下文菜单项目的View

6.Additional Views --- 其他的View,例如AnalogClock和DigitalClock

一、文本视图TextView

显示文本的组件,类似于html当中的label标签。其功能是向用户显示文本内容(不允许编辑),同时可选择性地让用户编辑文本。

组件常见属性:

1. 对宽度影响的属性、

2. 对高度影响的属性、

3.对文本颜色影响的属性、

2. 对文本大小影响的属性、

5. 对文本样式影响的属性、

6.对文本位置影响的属性、

7. 对文本动态性影响的属性(走马灯效果)

1.        对宽度影响的属性有:

android:layout_width//布局宽度,一般是"fill_parent","wrap_content","match_parent"。当然也可以设置数值.

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

android:maxWidth

android:minWidth

android:ems          //设置TextView的宽度为N个汉字字符的宽度

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

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

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

android:singleLine   //设置单行或者多行显示,一旦设置为true,则文字不会自动换行。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。

TextView必须的两个属性:android:layout_width  布局的宽度;  android:layout_height  布局的高度

带"layout"的属性是指整个控件而言的,是与父控件之间的关系,如 layout_gravity 在父控件中的对齐方式, layout_margin 是级别相同的控件之间的间隙等等;

不带"layout" 的属性是指控件中文本的格式,如gravity是指文本的对齐方式等等,而其中文本的格式又受制约于它的控件在父控件中的属性.

长宽相对设置

android:layout_width = "fill_parent" //设置为组件宽度/高度与父窗口的一致(其他属性不能再影响宽度和高度了)

android:layout_height = “wrap_content” <!--组件长/宽随着内容变化 -->

android:background="#00ff00"

android:width="100dp"            <!--此时不再起作用,因为有fill_parent-->

android:ems="2"    //设置TextView的宽度为N个固定的汉字字符的宽度,2即为2个汉字宽度,4个字符。

android:singleLine="true" //设置单行或者多行显示,一旦设置为true,则文字不会自动换行。

2.        对高度影响的属性有:

android:layout_height//布局高度,一般是"fill_parent","wrap_content","match_parent"。当然也可以设置数值.

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

android:maxHeight

android:minHeight

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

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

android:minLines                  //设置文本的最小行数,与lines类似

android:lineSpacingExtra         //设置行间距

android:singleLine

3.        对颜色影响的属性有:

android:textColor                             //设置文本颜色

android:textColorHighlight        //被选中文字的底色,默认为蓝色

例如:android:textColor="#00ffff"

android:textColorHighlight="#cccccc"

4.        对文字大小影响的属性有:

android:textSize="15sp"                         //设置文字大小,推荐度量单位”sp”,如”15sp”

5.        对文本字体样式的设置:

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

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

6.        对文本显示位置的设置:

android:gravity="center"         //设置文本在文本组件里面的位置,如果设成“center”,文本居中显示。

7.        对文本动态性影响的属性(走马灯效果)

所谓跑马灯效果就是当文字超过控件所能容纳的空间时,在控件内滚动的效果。

Android系统中TextView实现跑马灯效果,必须具备以下几个条件:

1、android:ellipsize=”marquee” ,设置为滚动效果

2、android:singleLine,TextView必须单行显示,即内容必须超出TextView大小

3、android:focusable ,TextView要获得焦点才能滚动

<TextView

android:id="@+id/textView1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:singleLine="true"       //当singlLine时,默认为true。必须单行显示,即内容必须超出TextView大小

android:ellipsize="marquee"  //设置为滚动效果,以横向滚动方式显示

android:marqueeRepeatLimit="marquee_forever"        //设置走马灯滚动次数,无限循环

android:focusable="true"                                             //获得焦点,TextView要获得焦点才能滚动

android:focusableInTouchMode="true"                 //设置在Touch模式下View是否能取得焦点

android:text="hello world my dearfriend this is a long long string,  longlong string" />

第16讲- UI组件之TextView的更多相关文章

  1. 第34讲 UI组件之 ProgressDialog和Message

    第34讲UI组件之 ProgressDialog和Message 1.进度对话框 ProgressDialog <1>简介 ProgressDialog是AlertDialog类的一个扩展 ...

  2. 第33讲 UI组件_进度条ProcessBar和消息队列处理器handler

    第33讲UI组件_进度条ProcessBar和消息队列处理器handler 1. 进度条ProcessBar 一个可视化的进度指示器,代表正在执行的耗时任务.可以为用户展示一个进度条,表示正在执行的任 ...

  3. 第30讲 UI组件之 GridView组件

    第30讲 UI组件之 GridView组件 1.网格布局组件GridView GridView是一个ViewGroup(布局控件),可使用表格的方式显示组件,可滚动的控件.一般用于显示多张图片,比如实 ...

  4. 第29讲 UI组件之 ListView与 BaseAdapter,SimpleAdapter

    第29讲 UI组件之 ListView与 BaseAdapter,SimpleAdapter 1.BaseAdapter BaseAdapter是Android应用程序中经常用到的基础数据适配器,它的 ...

  5. 第27讲 UI组件之 ScrollView与底部动态添加数据

    第27讲 UI组件之 ScrollView与底部动态添加数据 1. ScrollView(滚动视图) ScrollView(滚动视图)是实现滚动的一个控件,只需要将需要滚动的控件添加到ScrollVi ...

  6. 第19讲- UI组件之_Button、checkbox、radio

    第19讲 UI组件之_Button.checkbox.radio 四.按钮Button Button继承自TextView,间接继承自View.当用户对按钮进行操作的时候,触发相应事件,如点击,触摸. ...

  7. 第32讲 UI组件之 时间日期控件DatePicker和TimePicker

    第32讲 UI组件之 时间日期控件DatePicker和TimePicker 在Android中,时间日期控件相对来说还是比较丰富的.其中, DatePicker用来实现日期输入设置,    Time ...

  8. 第31讲 UI组件之 Gallery画廊控件

    第31讲 UI组件之 Gallery画廊控件 1.Gallery的简介 Gallery(画廊)是一个锁定中心条目并且拥有水平滚动列表的视图,一般用来浏览图片,并且可以响应事件显示信息.Gallery只 ...

  9. 第28讲 UI组件之 ListView和ArrayAdapter

    第28讲 UI组件之 ListView和ArrayAdapter 1. Adapter 适配器 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的 ...

随机推荐

  1. JAVA获取oracle中sequences的最后一个值

    项目中,用到一个序列作单号,框架用的是ssh,在dao层去拿的时候,运行时报错为dual is not mapped,[select *.nextval nextvalue from dual] 后来 ...

  2. ubuntu 14.04下练习lua

    随着lua越来越成熟,在服务器中应用也越来越广.自己也想向这方面发展,于是便开始lua的学习. 学习新的语言,应该是先编译.安装.部署开发调试环境,然后练习...可是,我现在并没有项目做啊,我只是想先 ...

  3. SecureCRT 安装及初始化配置

    安装 SecureCRT 7.3.4 安装以及破解方法 SecureCRT 6.5.0 汉化解压版 初始化配置 这里配置以SecureCRT 6.5.0 汉化解压版为例 1.调整SecureCRT终端 ...

  4. 关于ionic的一些坑(2)

    如果你通过查阅相关文档,ionic的项目框架已经搭好,下面我来总结一下我在项目中所遇到的坑,给还没踩过的人以方便,给自己以勉励: (1)关于android和ios的适配 因为ionic默认的tabs状 ...

  5. c++11 : range-based for loop

    0. 形式 for ( declaration : expression ) statement 0.1 根据标准将会扩展成这样的形式: 1   { 2     auto&& __ra ...

  6. 绘制更Smooth的UI

    以前很长一段时间,在自定义控制绘制时,只是简单的定义一个QPainter对象而开始绘画.经常会画一些圆角矩形,甚至是一些不规则的图形.对于不规则的图形来说,如果PS技术不好,或者mask制作的不好,常 ...

  7. js点击打开弹窗

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  8. JS属性读写操作+if判断注意事项

    js中不允许出现“ - ” 页面中改变文字大小-案例: <!doctype html> <html lang="en"> <head> < ...

  9. css布局详解(二)——标准流布局(Nomal flow)

    css标准流布局(Nomal flow) 一.正常流 这是指西方语言中文本从左向右,从上向下显示,这也是我们熟悉的传统的HTML文档中的文本布局.注意,在非西方的语言中,流方向可能不同.大多数元素都在 ...

  10. iOS的Bundle资源束制作

    在静态库的制作中,很多时候我们的静态库也是带着文件,图片和多媒体资源的. 若只是直接加入到项目中也是可以,但是,考虑到方便管理(方便插件使用者的管理),我们希望把插件的资源文件打成一个包来管理. 当然 ...