实例:强大的图片按钮 下面的实例定义了多个图片按钮,并定义了两个ZoomButton。两个ZoomButton的android:src属性分别指定为@android:drawable/btn_minus、@android:drawable/btn_plus,这样可以定义缩小和放大两个按钮。 下面是该实例的界面布局文件。 上面布局文件的开头定义了两个ImageButton,第一个ImageButton的android:src指定为一张静态图片,这样无论用户有怎样的行为,该ImageButton总显示这张静态图片。第二个... Read More
ImageView继承自View组件,它的主要功能是用于显示图片——实际上这个书法不太严谨因为他能显示的不仅是图片,任何Drawable对象都可以使用ImageView来显示。除此之外,ImageView还派生了ImageButton、ZoomButton等组件。实例:图片浏览器 本例的图片浏览器可以改变所有查看图片的透明度,可以通过调用ImageView的setAlpha方法来实现。不仅如此,本图片浏览器还可以通过一个小区域来查看图片的原始大小,因此本例会定义两个ImageView,一个用于查看图片整体,一个用于查看图片局部的细节。 下面是本例的界面布局文件。 ... Read More
Android提供了一个计时器组件:Chronometer,该组件与DigitalClock都继承自TextView,因此他们都会显示一段文本。但Chrnometer并不显示当前时间,它显示的是从某个起始时间开始,一共过去了多长时间。 Chronometer的用法也很简单,它只提供了一个android:format属性,用于指定计时器的计时格式。除此之外,Chronometer支持如下常用方法。setBase(long base):设置计时器的时间格式。setFormat(String format):设置显示时间的格式。start():开始计时stop():停止计时setOnChronem. Read More
时钟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设置该模拟时钟. Read More
状态开关按钮(ToggleButton)与开关(Switch)也是由Button派生出来的,因此它们的本质也是按钮,Button支持的各种属性、方法也适用于ToggleButton和Switch。从功能上来看,ToggleButton、Switch与CheckBox复选框非常相似,它们都可以提供两个状态。不过ToggleButton、Switch与CheckBox的区别主要体现在功能上,ToggleButton、Switch通常用于切换程序中的某种状态。 表2.14显示了ToggleButton所支持的XML属性及相关方法的说明。 表2.14 ToggleButton支持的XML属性及相关方. Read More
单选按钮(RadioButton)和复选框(CheckBox)、状态开关按钮(ToggleButton)与开关(Switch)是用户界面中最普通的UI组件,他们都继承了Button类,因此都可直接使用Button支持的各种属性和方法。 RadioButton、CheckBo与普通按钮不同的是,它们多了一个可选中的功能,因此RadioButon、CheckBox都可额外指定一个android:checked属性,该属性用于指定RadioButton、CheckBox初始时是否被选中。 RadioButton与CheckBox的不同之处在于,一组RadioButton只能选中其中一个,因此Rad. Read More
Button继承了TextView,它主要是在UI界面上生成一个按钮,该按钮可以供用户单机,当用户单击按钮时,按钮会触发一个onClick事件。 按钮使用起来比较容易,可以通过为按钮指定android:background属性为按钮增加背景颜色或背景图片,如果将背景图片设为不规则的背景图片,则可以开发出各种不规则形状的按钮。如果只是使用普通的背景颜色或背景图片,那么这些背景是固定的,不会随着用户的动作而改变。如果需要让按钮的背景颜色、背景图片随用户动作状态改变,则可以考虑使用自定义Drawable对象来实现。 实例:按钮、图形按钮、带文字的图片按钮 为了定义图片随用户动作改变的按钮,可以考虑. Read More
EditText与TextView非常相似,它甚至与TextView共用了绝大部分XML属性和方法。EditText和TextView的最大区别在于:EditText可以接受用户输入。 EditText组件最重要的属性是inputType,该属性相当于HTML的元素的type属性,用于EditText为指定类型的输入组件。inputType能接受的属性值非常丰富,而且随着Androd版本的升级,该属性能接受的类型还会增加。 EditText还派生了如下两个类。AutoCmpleteTextView:带有自动完成功能的EditText。ExtractEditText:它并不是UI组件,而是Ed. Read More
Android基本界面组件。Android基本界面组件的类图如下:文本框(TextView)与编辑框(EditText)的功能和用法 TextView直接继承了View,它还是EditText、Button两个UI组件类的父类。TextView的作用就是在界面上显示文字。 从功能上来看,TextView其实就是一个文本编辑器,只是Android关闭了它的文字编辑功能。如果开发者想要定义一个可以编辑内容的文本框,则可以使用它的子类:EditText,EditText允许用户编辑文本框的内容。 TextView还派生了一个CheckedTextView,CheckedTextViw增加了一个ch. Read More
绝对布局由AbsoluteLayout代表。绝对布局就是Android不提供任何布局控制,而由开发人员自己通过X坐标、Y坐标来控制组件的位置。当使用AbsoluteLayout作为布局容器时,布局容器不再管理子组件的位置、大小——这些都需要开发人员自己控制。 使用绝对布局时,每个子组件都可能指定如下两个XML属性。layout_x:指定该子组件的X坐标。layout_y:指定该子组件的Y坐标。实例:登录界面下面介绍一个使用绝对布局开发的登录界面的实例,这个登录界面中所有组件都通过“绝对定位”的方式来指定位置。下面是该登录的界面布局文件。 运行该Activity将会出现图2.15所示的效果... Read More