android学习笔记(16)按钮(Button )与固片按钮(ImageButton )組件的功能和用法

2014-12-9 17:34:09     15 人阅读    

          Button 继承了 TextView, ImageButton 继承了 Button。不管是 Button 还是 ImageButton, 它们的功能都很单一,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户 单击按钮时,按钮会触发一个OnClick事件。关于OnClick事件编程的简单示例,本书前面已经见到很多,后面还会详细介绍Android的事件编程。


          Button与ImageButton的区别在于:Button生成的按钮上 示文字,而ImageButton上则显示图片。需要指出的是:为ImageButton按钮指定android:text属性没用,即使指定了该属性,图片按钮上也不会显示任何文字。按钮使用起来比较容易,可以通过为按钮指定 android:background属性为按钮增加背景颜色或背景图片,但这种背景颜色或背景图片是固定的,不会随着用户的动作而改变。 如果考虑使用ImageButton,图片按钮可以指定android:img属性,但该按钮又不能指定文字,而且如果只是为1mageButton 的android:src指定一张图片,那么该图片还是不能随用户动作来改变。

下面通过实例来开发出更强大的按钮。
实例:按钮、圆形按钮、带文字的图片按钮
为了定义图片随用户动作改变的按钮,可以考虑使用XML资源文件来定义Dmwable对象,再将Drawable对象设为Button的android:background属性值,或设为ImageButton的 android:src 属性值。
例如有如下界面布局文件。
程序清单:codes\02\2.3\ButtonTest\res\layout\main.xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="horizontal"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TableRow>
<!-- 普通文字按钮 --> 
<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/red"
 android:text="普通按钮"
 android:textSize="10pt"
/>
<!-- 普通图片按钮 -->
<ImageButton
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:src="@drawable/blue"
 android:background="#000000"
/>
</TableRow>
<TableRow>
<!-- 按下时显示不同图片的按钮 -->
<ImageButton
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:src="@drawable/button_selector"
 android:background="#000000"
/>
<!-- 带文字的图片按钮-->
<Button
 android:id="@+id/test"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/button_selector"
 android:text="带文字的图片按钮"
/>
</TableRow>
</TableLayout>

上面的界面布局中前两个按钮只是普通按钮和普通的图片按钮,因此它们的行为比较简 单。后面两个按钮就有点特殊了,分别指定了 android:src、androi出background属性为 @drawable/button_selector,该属性值引用一个Drawable资源,该资源对应的XML文件如下。
 程序清单:ButtonTest\res\drawable-mdpi\button一selector.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- 指定按钮按钮下时的图片 -->
 <item android:state_pressed="true"
  android:drawable="@drawable/red"
 />
 <!-- 指定按钮松开时的图片 --> 
 <item android:state_pressed="false"
  android:drawable="@drawable/purple"
 />
</selector>

上面的资源文件使用〈selector.../>元素定义了一个StateListDrawable对象——本书后面会
详细介绍如何使用XML文件来定义Drawable的内容,此处不再深 入讲解。

提示:
以笔者的经验来看,Button生成的按钮功能很强大,就像第四个按钮就是Button生成的,而且它也可以通过背景色来设置图片,如果使用ImageButton来. 创建图片按钮,那么按钮上将只有图片没有文字。


原文地址:http://www.itmmd.com/201412/288.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android学习笔记(17)使用9Patch图片作为你按钮背景   上一篇
下一篇  android学习笔记(15)文本框(TextView)与编辑框(EditText)的功能和用法

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!