Android用户界面设计:基本按钮

本文向你展示了在你的Android应用程序中创建一个简单的Button或ImageButton控件的步骤。首先,你会学到如何向你的布局文件中添加按钮控件。然后你会学习如何用两种方法处理用户对按钮的点击。最后,我们讨论Android中按钮控件一些其它的可用特性。

第1步:创建Android应用程序

我们从创建Android程序开始。你平常一样完成你的Android应用。一旦你已经创建项目并可以运行,决定你希望向什么样的屏幕添加Button控件。可能你就简单地创建了一个使用默认活动和布局(main.xml)的新Android项目。这个教程将使用这种情况作例子。一旦你创建了你的Android项目,你就可以继续学习这篇文章了。

第2步:使用Button控件

Android SDK包含两个在你的布局中可以使用的简单按钮控件:Button(android.widget.Button)和ImageButton(android.widget.ImageButton)。这些控件的功能很相似因此我们几乎可以一并地的讨论它们。这两个控件不相同的地方基本上就是外观上;Button控件有一个文本标签,而ImageButton使用一个可绘制的图像资源来代替。Button使用的一个很好的例子应该是一个简单的带有“保存”文本标签的按钮。ImageButton使用的一个很好的例子可能是音乐播放器按钮的集合,包括播放P, 暂停 以及停止。

这里是一个示例屏幕,包括一个Button控件(左边)和一个ImageButton控件(右边)。

Android SDK还包含了一些其它更不为人知的从上面两个基本按钮类型继承来的类按钮控件,包括CompoundButton,RadioButton,ToggleButton,和ZoomButton。要了解这些控件的更多信息,查看Android文档。你也可以通过继承合适的类并实现控件行为来创建自定义控件。

第3步:向布局添加Button控件

Button控件通常都被作为活动的布局资源文件一部分。比如,要添加一个Button控件到与你程序相关的main.xml布局资源中,你必须编辑布局文件。你可使用Eclipse的布局资源设计器,或者直接编辑XML。像按钮这样的控件也可以通过程序动态地创建并在运行时添加到你的屏幕上。简单地通过它的类来创建合适的控件并将它添加到你的活动中的布局。

要添加一个Button控件到布局资源文件,打开/res/layout/main.xml布局文件,它是你的Android项目的一部分。点击你想要为其添加Button控件的LinearLayout (或者父级布局控件,比如RelativeLayout或FrameLayout)。在Eclipse中,你可以点击Outline标签中的父级布局,然后使用绿色加号按钮添加一个新的控件。选择你要添加的控件——在这个例子中是Button控件。

要配置Button控件的外观,选中该控件并通过在属性标签中改变属性值来调节控件的属性。下面是一些你会想知道的特别的属性:

  • 使用id属性给Button或ImageButton一个唯一的名字;
  • 使用文本属性设置Button控件上要显示的文字;
  • 使用src属性设置ImageButton控件上要显示的图片。
  • 将控件的布局高度和布局宽度属性设置为wrap_content.
  • 设置任何其它属性来调整控件的外观。比如,使用文本颜色,文本大小和文本样式属性来调整Button的字体。

下面是用来生成前段中展示的屏幕的布局资源文件的内容。它包括三个控件。

RelativeLayout组织屏幕上的控件,也就是两个子控件,一个Button和一个ImageButton,如下:

<pre name="code"><?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="center"><Buttonandroid:id="@+id/Button01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello"android:minHeight="92dp"android:textSize="22dp"android:onClick="onMyButtonClick"></Button><ImageButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/skater"android:id="@+id/ImageButton01"android:layout_toRightOf="@+id/Button01"></ImageButton></RelativeLayout></pre>

第4步:处理点击

现在,如果你运行你的程序,按钮控件显示出来了,但是如果你点击它们不会有任何反应。现在应该来处理控件上的点击事件了。有好几种方法可以做到。

让我们从简单的方法开始吧。Button和ImageButton控件有一个叫onClick的属性(在属性面板里叫“On Click”)。你可以通过这个属性设置要处理点击事件的方法名,然后在你的活动中实现这个方法。比如,你可以将你的Button控件属性设置为onMyButtonClick。在XML中,这个属性将如下所示:

android:onClick="onMyButtonClick"

然后,在你的活动类,你需要实现这个方法。它应该是一个带有单个参数(一个View对象)的公有的void方法。例如,下面的按钮点击实现了当Button控件被点击时在屏幕生成一个消息框:

public void onMyButtonClick(View view){Toast.makeText(this, "Button clicked!", Toast.LENGTH_SHORT).show();}

当你点击这个Button控件,onMyButtonClick()方法被调用,在屏幕上显示一个消息。你的Button按钮能做什么就取决于你自己了。下图显示了当点击Button按钮时消息是如何展示的:

第5步:处理点击——实现OnClickListener

实现点击事件处理的另一种方法是使用setOnClickListener()方法向你的按钮控件注册一个新的View.OnClickListener。这种方式代替了将你布局资源中的按钮控件的On Click属性设置为一个你必须实现的方法的方式,你可以在你的活动中动态地做这些事情。虽然这可能看起来有很多额外的代码要写,但至少理解它是非常重要的,因为在一些控件上点击不是需要处理的唯一事件。我们将要向你展示的程序应用了其它的事件,比如长按。

要使用这个方法,你必须更新你的活动类以注册控件点击事件。通常情况下通过你的活动的onCreate()方法来实现。使用findViewById()方法找到控件然后使用它的setOnClickListener()方法来定义当它被点击时的行为。你将需要自己去实现界面的onClick()方法。比如,下面的代码(位于活动的onCreate()方法中)为我们的ImageButton控件注册了一个点击处理器。

ImageButton myImageButton = (ImageButton) findViewById(R.id.ImageButton01);myImageButton.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {Toast.makeText(BasicButtonActivity.this, "ImageButton clicked!", Toast.LENGTH_SHORT).show();}});

同样地,你可以使用这个技术来实现长按点击处理,通过使用控件的setOnLongClickListener()方法。

总结

按钮控件在Android程序中经常会用到。在这个快速教程中你学习了如何创建两种不同的Android按钮控件:Button和ImageButton。你也学习了实现这些类型按钮控件的按钮点击事件处理的几种方法。(注:原文作者:RockUX–WEB 点此查看英文。)

http://mobile.51cto.com/design-254382.htm

Android用户界面设计:基本按钮相关推荐

  1. android用户界面设计:基本按钮,Android用戶界面設計:基本按鈕

    本文向你展示了在你的android應用程序中創建一個簡單的Button或ImageButton控件的步驟.首先,你會學到如何向你的布局文件中添加按鈕控件.然後你會學習如何用兩種方法處理用戶對按鈕的點擊 ...

  2. Android用户界面设计

    Android用户界面设计 用户界面设计是Android应用开发的一项重要内容.在进行开发的过程中,我们需要了解UI元素如何呈现给用户,也就是如何控制UI界面.andorid提供了4种控制UI的方法. ...

  3. Android用户界面设计学习之旅-第二站

    通过上一篇文章,大概了解了Android用户界面的设计方式,以及如何通过XML来设计界面.并且完成了一个非常简单的示例. 在上一篇文章中,涉及到了一些资源文件,直观点说,就是res目录下的那些目录和文 ...

  4. Android用户界面设计:框架布局

    框架布局是将控件组织在Android程序的用户界面中最简单的布局类型之一. 理解布局对于良好的Android程序设计来说是非常重要的.在这个教程里,你将学到所以关于框架布局的知识,它们主要用来在屏幕上 ...

  5. Android用户界面设计“.NET研究”:框架布局

    框架布局是将控件组织在Android程序的用户界面中最简单的布局类型之一. 理解布局对于良好的Android程序设计来说是非常重要的.在这个教程里,你将学到所以关于框架布局的知识,它们主要用来在屏幕上 ...

  6. Android用户界面设计学习之旅-第三站

    通过上一篇文章,知道了如何创建一个应用程序来显示一个静态的View.然而,在大多数情况下仅仅显示是不够的,应该还需要与用户的交互行为.现在完成一个简单的和用户交互的示例. 这个小程序的需求是: 画面上 ...

  7. android tv盒子 主界面,设计规范 | 详解Android TV用户界面设计

    文章对比电视界面,从主屏幕和应用程序两个方面对Android TV的用户界面设计进行了详细梳理,与大家分享. 与移动端设备不同,用户一般在3米外使用电视.因此电视界面设计上需要大而漂亮,要有合适的布局 ...

  8. Android用户界面的设计方法心得,android界面设计实验总结,.docx

    android界面设计实验总结, 安卓实验报告 班级: 学号: 姓名:xxxxxxxxx 实验一:Activity生命周期的测试 一:实验目的 掌握使用Eclipse开发Android应用开发程序的方 ...

  9. android java与界面的关联_Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)...

    当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易.其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件. 一:Androi ...

  10. Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)...

    当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易.其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件. 一:Androi ...

最新文章

  1. 端到端对话模型新突破!Facebook发布大规模个性化对话数据库
  2. 创新驱动未来,浪潮持续深耕信息安全市场
  3. IOS 获取缓存目录文件大小并清除
  4. Maven 概要介绍
  5. python3函数可变输入参量
  6. python egg文件安装_Python 和 egg 文件
  7. MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB
  8. 如何使Flash在Internet Explorer的64位版本中工作
  9. java项目内存使用率过高排查_项目内存或者 cpu 占用率过高如何排查
  10. STM32之通用定时器输出比较模式
  11. 多租户saas 架构_实战复盘:toB产品的多租户架构设计
  12. Redmi K50 Pro未发先火 卢伟冰:压力好大
  13. Spring mvc json
  14. 如何阻止通过Outlook用户发送WORD或EXCEL变成带Winmail.dat文件附件的邮件
  15. 股票分析之主力资金排序分析
  16. 关于用C#编写ActiveX控件1
  17. 实对称矩阵的奇异值等于特征值
  18. excel输入 正在计算机,在Excel中输入内容后如何自动填写日期和时间
  19. win10系统找不到指定文件怎么办?10种解决方法帮你解决
  20. 李宏毅自然语言处理——GPT3简介

热门文章

  1. PaddlePaddle(8)—— 如何写好一篇高质量的精选项目
  2. HDU 6274 Master of Sequence (暴力+下整除)
  3. Windows 2016 安装单机版本Oracle ASM 的简单说明
  4. 02-Mysql数据库----初识
  5. Linux虚拟机下mysql 5.7安装配置方法图文教程
  6. 随机森林入门攻略(内含R、Python代码)
  7. 使用java创建kafka的生产者和消费者
  8. 8-ORACLE四种关闭方式
  9. DiscuzNT改造-远程图片自动采集-DNT2.5(自动采集、源码下载)
  10. 打开你的脑洞:NER如何进行数据增强 ?