技术开发 频道

Android开发指南─用户界面

  工具

  工 具是为用户交互界面提供服务的视图对象。Android提供了一套完整的工具实现,包括按钮、复选框、文本输入框等,以助于你快速的构建UI。 Android还提供了一些更高级的工具,比如日期选择、时钟以及缩放控制。但您并没有被局限于Android平台提供的这些工具上。如果您想创建一些您 自己的定制动作元素,您可以这么做,只要定义自己的视图对象或者扩展或合并现有的工具就行。

  更多信息参阅构建自定义组件。

  您可以在android.widget包中找到Android提供的工具列表。

  用户界面事件

  当你在用户界面中加入了一些视图和工具之后,你可能想要知道如何让它们与用户交互,进而实现你的动作。如欲获得用户界面事件通知,你需要做以下两件事情之一:

  * 定义一个事件侦听器并将其注册至视图。通常情况下,这是你侦听事件的主要方式。View类包含了一大堆命名类似 On<什么什么>Listener的接口,每个都带有一个叫做On<什么什么>()的回调方法。比如: View.OnClickListener (用以处理视图中的点击),View.OnTouchListener (用以处理视图中的触屏事件),以及View.OnKeyListener (用以处理视图中的设备按键事件)。所以,如果你希望你的视图在它被”点击”(比如选择了一个按钮)的时候获得通知,你就要实现 OnClickListener,定义它的onClick()回调方法(在其中进行相应处理),并将它用setOnClickListener()方法注 册到视图上。

  * 为视图覆写一个现有的回调方法。这种方法主要用于你自己实现了一个View类,并想侦听其上发生的特定事件。比如说当屏幕被触摸 (onTouchEvent()),当轨迹球发生了移动(onTrackballEvent())或者是设备上的按键被按下(onKeyDown())。 这种方式允许你为自己定制的视图中发生的每个事件定义默认的行为,并决定是否需要将事件传递给其它的子视图。再说一次,这些是View类相关的回调方法, 所以你只能在你构建自定义组件时定义它们。

  如何在视图中处理用户交互请参见处理用户界面事件文档。

  菜单

  应用程序菜单是应用程序用户界面中另外一个重要的组成部分。菜单为展现应用程序功能和设置提供了一个可靠的界面。按下设备上的MENU键会调出最普通的应用程序菜单。然而,你也可以加入当用户长按一个项目时调出的上下文菜单。

  菜 单也是用视图层次进行构架的,但你不必自己定义这个架构。你只要为你的Activity定义onCreateOptionsMenu() 和 onCreateContextMenu() 回调方法,并声明你想要包含在菜单中的项目就行了。Android将为你的菜单自动创建视图层次,并在其中绘入你的菜单项。

  菜单会自行处理它们的事件,所以你不必为你菜单中的项目注册事件侦听器。当你菜单中的一项被选定时,框架将自动调用 onOptionsItemSelected() 或 onContextItemSelected() 方法。

  如同应用程序布局一样。你也可以在一个XML文件中定义你菜单中的项目。

  更多信息,请参阅创建菜单。

  高级话题

  一旦你对创建用户界面的基础了如指掌,你就可以尝试着用一些高级功能来创建更加复杂的应用程序界面。

  Adapter

  有时候你会想要用一些无法硬编码的信息来填充视图组。你想将源于外部的数据绑定到你的视图中。为达到这个目的,你可以使用AdapterView作为你的视图组,并用Adapter传来的数据初始化每个子视图并填入其中。

  AdapterView 对象是一个用给定的Adapter对象为基础构建它的子视图的ViewGroup实现。而Adapter在你的数据源(可能是一个外部字符串数组)和显示 这些数据的AdapterView之间扮演着一个信使的角色。针对特定的任务有着很多不同的Adapter类实现,比如 CursorAdapter依据Cursor读出一个数据库的数据,而一个ArrayAdapter则从任一个数组进行读取。

  想要了解如何运用Adapter填充你的视图,请参见用AdapterView绑定至数据。

  风格与主题

  或许你对标准工具的外表不是那么满意。为了解决这个问题,你可以创建你自己的风格和主题。

  * 风格是一套包含一个或多个格式化属性的整体,你可以把它们加诸于你布局中的单个元素之上。比如,你可以定义一个包含特定文本字体大小和颜色的风格,并将它单独施用于特定的视图元素。

  * 主题也是一套包含一个或多个格式化属性的整体,但却应用于一个应用程序中的所有Activity,或单独一个Activity。比如说,你可以定义一个包 含了特定窗口边框颜色和版面背景、以及一套字体大小和菜单颜色的主题。这个主题可以施用于特定的Activity抑或整个应用程序。

  风格与主题隶属于资源。Android提供了一些默认的风格和主题供你使用,你也可以定制你自己的风格和主题资源。

  原文链接:http://developer.android.com/guide/topics/ui/index.html

0
相关文章