今天希望将常见的一些UI组件的用法规整一下,方便复习和回顾。
通过昨天的梳理,我们已经知道,所有的UI都是View的子类,所有的布局都是ViewGroup的子类。 ViewGroup本身又可以理解为一个View的子类的集合。 此外,它们都是通过jni实现。
今天是实训的第三天,那么导师已经给我们介绍的UI控件 有: TextView文本显示框,EditText文本输入框,Button按钮,Toast提示框,AlertDialog警示框,SeekBar环形进度条,ProgressBar平行进度条,以及今天的所讲的scrollView。
这里的话还是结合菜鸟,以及导师的解说,一步步的啃这些组件吧,期望能收到一个不错的效果。
在开始之间,有必要了解一些知识点:
dp:device independent pixels,设备独立像素,与设备硬件有关
px: pixels,像素
pt: point,标准的长度单位,1pt = 1/72英寸,用于印刷业
sp:scaled pixels,放大像素,主要用于字体显示。
1.TextView,文本控件
基本的属性: text,background,gravity; 注意,background即可以是颜色,也可以是图片,对电脑而言它们是一样的。
进阶属性: shadowColor,shadowRaius 二者需要一起使用,设置阴影。
边框控件,类似于添加一个有背景的边框。
自动换行:sigleLine="true"
跑马灯效果: marqueeRepeatLimit="marquee_forever"; ellipsize="marquee_forever";
2. EditText,输入框控件
基本属性:hint="提示文本!"
进阶属性: 获得焦点后自动选中全部: selectAllOnFocus="Focus";
限制输入类型: textPassword=""; eg: textPassword,phone;
换行: singleLine ="true";
带表情的输入框: 1.通过SpannableString实现; 2.使用Html类来实现
带删除按钮的输入框: 依赖TextWatcher实现。(主要逻辑通过代码实现)。
3.Button 与 ImageButton 按钮:
见菜鸟这里
4. ImageView,图像视图控件
基本属性: background->背景; src-> 内容;(background填入的图片不会进行拉伸,background给的图片会进行拉伸)
设置透明度: setAlpha。
缩略图设置,并保持宽高比。 maxHeight,maxWidth, adjustViewBounds="true"。
设置图片的适配类型,缩放类型等: scaleType ="" 可选的有: matrix,fitXY,fixEnd,fitStart,fitCenter
圆形图设置: 通过继承自定义继承View的类,并覆盖相应的绘制方法实现。
5.RadioButton,单选框以及 checkBox 复选框
单选按钮功能,父级组件 需要套用一个 RadioGroup,用以确定作用域。 此外,每个单选按钮最好设置id,否则有可能出错。
复选框限制较少。
6.ToggleButton开关按钮 和 Switch 开关
开关按钮的基本属性: disabledAlpha: 按钮再禁止使用时的透明度
textOff: 没有选中时显示的文字
textOn: 选中时显示的文字
开关:
android4以后引入的控件。
基本属性: thumb:滑块的图片
track: 底部的图片
7.ProgressBar进度条
基本属性: max:进度条最大值
progress: 已经完成进度值
style: 水平或者环形
8.SeekBar,拖动条
基本属性: max: 最大值
progress: 当前值
9.星级评分条: RatingBar
基本属性: numStars: 星星数
rating: 默认评分值
stepSize: 评分增长值
10.ScrollView,滚动条
注意,它的直接之类只能由一个,这就决定了它的直接子类只能为ViewGroup的实现类。 否则会运行出错。
基本属性:滚动速度,通过代码控制。
11.Date 和 Time 控件
TextClock控件,相当于java的 new Date().toString();
AnalogClock,模拟时钟,基本属性: dial->背景表,hand_hour->表时针图,hand_minute->分时针图
Chronometer,计时器。
DatePicker,日期选择器。 基本属性: startYear—>设置第一年; \
TimePicker,时间选择器。
CalendarView,日历视图。