09 2013 档案

摘要:ImageView继承自View组件,它的主要功能是用于显示图片——实际上这个书法不太严谨因为他能显示的不仅是图片,任何Drawable对象都可以使用ImageView来显示。除此之外,ImageView还派生了ImageButton、ZoomButton等组件。实例:图片浏览器 本例的图片浏览器可以改变所有查看图片的透明度,可以通过调用ImageView的setAlpha方法来实现。不仅如此,本图片浏览器还可以通过一个小区域来查看图片的原始大小,因此本例会定义两个ImageView,一个用于查看图片整体,一个用于查看图片局部的细节。 下面是本例的界面布局文件。 ... 阅读全文
posted @ 2013-09-29 21:32 TealerProg 阅读(422) 评论(0) 推荐(0)
摘要:Android提供了一个计时器组件:Chronometer,该组件与DigitalClock都继承自TextView,因此他们都会显示一段文本。但Chrnometer并不显示当前时间,它显示的是从某个起始时间开始,一共过去了多长时间。 Chronometer的用法也很简单,它只提供了一个android:format属性,用于指定计时器的计时格式。除此之外,Chronometer支持如下常用方法。setBase(long base):设置计时器的时间格式。setFormat(String format):设置显示时间的格式。start():开始计时stop():停止计时setOnChronem. 阅读全文
posted @ 2013-09-29 08:49 TealerProg 阅读(386) 评论(0) 推荐(0)
摘要:时钟UI组件是两个非常简单的组件,DigitalClock本身就继承了TextView——也就是说它本身就是文本框,只是它里面显示的内容总是当前时间。与TextView不同的是为DigitalClock设置android:text属性没什么作用。 AnalogClock则继承了View组件,他重写了View的OnDraw方法,它会在View上绘制模拟时钟。 表2.16显示了AnalogClock所支持的XML属性的说明。 表2.16 AnalogClock支持的XML属性的说明XML属性说明android:dial设置该模拟时钟的表盘使用的图片android:hand_hour设置该模拟时钟. 阅读全文
posted @ 2013-09-27 21:50 TealerProg 阅读(4356) 评论(0) 推荐(0)
摘要:状态开关按钮(ToggleButton)与开关(Switch)也是由Button派生出来的,因此它们的本质也是按钮,Button支持的各种属性、方法也适用于ToggleButton和Switch。从功能上来看,ToggleButton、Switch与CheckBox复选框非常相似,它们都可以提供两个状态。不过ToggleButton、Switch与CheckBox的区别主要体现在功能上,ToggleButton、Switch通常用于切换程序中的某种状态。 表2.14显示了ToggleButton所支持的XML属性及相关方法的说明。 表2.14 ToggleButton支持的XML属性及相关方. 阅读全文
posted @ 2013-09-27 20:25 TealerProg 阅读(13012) 评论(0) 推荐(1)
摘要:单选按钮(RadioButton)和复选框(CheckBox)、状态开关按钮(ToggleButton)与开关(Switch)是用户界面中最普通的UI组件,他们都继承了Button类,因此都可直接使用Button支持的各种属性和方法。 RadioButton、CheckBo与普通按钮不同的是,它们多了一个可选中的功能,因此RadioButon、CheckBox都可额外指定一个android:checked属性,该属性用于指定RadioButton、CheckBox初始时是否被选中。 RadioButton与CheckBox的不同之处在于,一组RadioButton只能选中其中一个,因此Rad. 阅读全文
posted @ 2013-09-27 19:41 TealerProg 阅读(8520) 评论(0) 推荐(1)
摘要:Button继承了TextView,它主要是在UI界面上生成一个按钮,该按钮可以供用户单机,当用户单击按钮时,按钮会触发一个onClick事件。 按钮使用起来比较容易,可以通过为按钮指定android:background属性为按钮增加背景颜色或背景图片,如果将背景图片设为不规则的背景图片,则可以开发出各种不规则形状的按钮。如果只是使用普通的背景颜色或背景图片,那么这些背景是固定的,不会随着用户的动作而改变。如果需要让按钮的背景颜色、背景图片随用户动作状态改变,则可以考虑使用自定义Drawable对象来实现。 实例:按钮、图形按钮、带文字的图片按钮 为了定义图片随用户动作改变的按钮,可以考虑. 阅读全文
posted @ 2013-09-27 14:24 TealerProg 阅读(598) 评论(0) 推荐(0)
摘要:EditText与TextView非常相似,它甚至与TextView共用了绝大部分XML属性和方法。EditText和TextView的最大区别在于:EditText可以接受用户输入。 EditText组件最重要的属性是inputType,该属性相当于HTML的元素的type属性,用于EditText为指定类型的输入组件。inputType能接受的属性值非常丰富,而且随着Androd版本的升级,该属性能接受的类型还会增加。 EditText还派生了如下两个类。AutoCmpleteTextView:带有自动完成功能的EditText。ExtractEditText:它并不是UI组件,而是Ed. 阅读全文
posted @ 2013-09-27 13:23 TealerProg 阅读(1510) 评论(0) 推荐(0)
摘要:Android基本界面组件。Android基本界面组件的类图如下:文本框(TextView)与编辑框(EditText)的功能和用法 TextView直接继承了View,它还是EditText、Button两个UI组件类的父类。TextView的作用就是在界面上显示文字。 从功能上来看,TextView其实就是一个文本编辑器,只是Android关闭了它的文字编辑功能。如果开发者想要定义一个可以编辑内容的文本框,则可以使用它的子类:EditText,EditText允许用户编辑文本框的内容。 TextView还派生了一个CheckedTextView,CheckedTextViw增加了一个ch. 阅读全文
posted @ 2013-09-26 20:50 TealerProg 阅读(778) 评论(0) 推荐(1)
摘要:绝对布局由AbsoluteLayout代表。绝对布局就是Android不提供任何布局控制,而由开发人员自己通过X坐标、Y坐标来控制组件的位置。当使用AbsoluteLayout作为布局容器时,布局容器不再管理子组件的位置、大小——这些都需要开发人员自己控制。 使用绝对布局时,每个子组件都可能指定如下两个XML属性。layout_x:指定该子组件的X坐标。layout_y:指定该子组件的Y坐标。实例:登录界面下面介绍一个使用绝对布局开发的登录界面的实例,这个登录界面中所有组件都通过“绝对定位”的方式来指定位置。下面是该登录的界面布局文件。 运行该Activity将会出现图2.15所示的效果... 阅读全文
posted @ 2013-09-26 20:00 TealerProg 阅读(573) 评论(0) 推荐(0)
摘要:网格布局由GridLayout代表,它是Android 4.0新增的布局管理器,因此需要在Android 4.0 之后的版本中才能使用该布局管理器。如果希望在更早的Android平台上使用该布局管理器,则需要导入响应的支撑库。GridLayout的作用类似于HTML中的table标签,它把整个容器划分成rows*columns个网格,每个网格可以放置一个组件。除此之外,也可以设置一个组件横跨多少列、一个组件纵跨多少行。 GridLayout提供了setRowCount(int)和setColumnCount(int)方法来控制该网格的行数量和列数量。 表2.11显示了GridLayout常用. 阅读全文
posted @ 2013-09-26 15:13 TealerProg 阅读(1524) 评论(0) 推荐(0)
摘要:相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的,因此这种布局方式被称为相对布局。 如果A组件的位置是由B组件的位置来决定的,Android要求先定义B组件,再定义A组件。 RelativeLayout可支持如表2.8所示的两个XML属性。 表2.8 RelativeLayout的XML属性及相关方法说明XML属性相关方法说明android:gravitysetGraviy(int)设置该布局容器内各子组件的对齐方式android:ignoreGravtysetIgnoreGravity(int)设置哪个组件不受gravity属性的影响为. 阅读全文
posted @ 2013-09-26 14:18 TealerProg 阅读(1389) 评论(0) 推荐(0)
摘要:帧布局由FrameLayout所代表,FrameLayout直接继承了ViewGroup组件。 帧布局容器为每个加入其中的组件创建一个空白区域(称为一个帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。帧布局的效果是把组件一个一个地叠加在一起。表2.7显示了FrameLayout常用的XML属性及相关方法说明。 表2.7 FrameLayout的常用XML属性及相关方法XML属性相关方法 说 明android:foregroundsetForeground(Drawable)设置该帧布局容器的前景图像android:foregroundGravitysetForegro. 阅读全文
posted @ 2013-09-26 11:36 TealerProg 阅读(1853) 评论(0) 推荐(0)
摘要:表格布局由TableLayout所代表,TableLayout继承了LinearLayout,因此它的本质依然是线性布局管理器。表格布局采用行、列的形式来管理UI组件,TableLayout并不需要明确地声明包含多少行、多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。 每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此它也可以不断地添加其他组件,每添加一个子组件该表格就增加一列。 如果直接向TableLayout中添加组件,那么这个组件将直接占用一行。 在表格布局中,列的宽度由该列中最宽的那个单元格决. 阅读全文
posted @ 2013-09-26 10:58 TealerProg 阅读(512) 评论(0) 推荐(0)
摘要:Android的布局管理器本身就是一个UI组件,所有的布局管理器都是ViewGroup的子类。图2.7显示了Android布局管理器的类图。图2.7 Android布局管理器的类图从图2.7可以看出,所有布局都可作为容器类使用,因此可以调用多个重载的addView()向布局管理器中添加组件。实际上,我们完全可以用一个布局管理器嵌套到其他布局管理器中——因为布局管理器也继承了View,也可以作为普通UI组件使用。线性布局线性布局由LinearLayout类来代表,它会将容器里的组件一个挨着一个地排列起来。LinearLayout可以控制各组件横向排列(通过设置android:orientati. 阅读全文
posted @ 2013-09-25 21:06 TealerProg 阅读(689) 评论(0) 推荐(0)
摘要:View组件的作用类似于一个矩形的空白区域,View组件没有任何内容。对于Android应用的其他UI组件来说,它们都继承了View组件,然后在View组件提供的空白区域上绘制外观。 基于Android UI组件的实现原理,开发者完全可以开发出项目定制的组件——当Android系统提供的UI组件不足以满足项目需要时,开发者可以通过继承View来派生自定义组件。 当开发者打算派生自己的UI组件时,首先定义一个继承View基类的子类,然后重写View类的一个或多个方法,通常可以被用户重写的方法如下。 构造器:重写构造器是定制View的最基本方式,当Java代码创建一个View实例,或根据XML布. 阅读全文
posted @ 2013-09-25 11:29 TealerProg 阅读(401) 评论(0) 推荐(0)
摘要:完全使用Java代码来控制UI界面不仅烦琐、而且不利于解耦;而完全利用XML布局文件来控制UI界面虽然方便、便捷,但难免有失灵活。因此有些时候,可能需要混合使用XML布局文件和代码来控制UI界面。当混合使用XML布局文件和代码来控制UI界面时,习惯上把变化下、行为比较固定的组件放在XML布局文件中管理,而那些变化较多、行为控制比较复杂的组件则交给Java代码老管理。实例:简单图片浏览器 前台代码: 上面的布局文件只是定义了一个简答线性布局。接下来我们会在程序中获取该线性布局容器,并往该容器中添加组件。下面是该示例的程序代码。后台代码:package org.crazyit.ui;import. 阅读全文
posted @ 2013-09-25 10:39 TealerProg 阅读(1274) 评论(0) 推荐(0)
摘要:虽然Android推荐使用XML布局文件来控制UI界面,但如果开发者愿意,Android允许开发者完全抛弃XML布局文件,完全在Java代码中控制UI界面。实例:用编程的方式开发UI界面package org.crazyit.helloworld;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.ViewGroup;import android.widget.*;import android.view.View;import android.view 阅读全文
posted @ 2013-09-24 21:27 TealerProg 阅读(540) 评论(0) 推荐(0)
摘要:一、视图组件与容器组件 Android应用的绝大部分UI组件都放在android.widget包及其子包、android.view包及其子包中,Android应用的所有UI组件都继承了View类。 View类有重要的子类:ViewGroup,但ViewGroup通常作为其他组件的容器使用。 Android的所有UI组件都是建立在View、ViewGroup基础之上的,Android采用了“组合器”设计模式来设计View和ViewGroup:ViewGroup是View的子类,因此ViewGroup也可被当成View使用。对于一个Android应用的图形图形用户界面来说,ViewGroup作为容 阅读全文
posted @ 2013-09-24 08:43 TealerProg 阅读(649) 评论(0) 推荐(1)