View对象是一个数据体,它的属性存储了用于屏幕上一块矩形区域的布局参数及内容。并负责这块它所辖的这个矩形区域之中所有测量、布局、焦点转换、卷动以及按键/触摸手势的处理。作为一个用户界面对象,View同时也担任着用户交互关键点以及交互事件接受者的角色。
布局Layout
定义并展现你的视图层次的最常用的方法是使用XML布局文件。如同HTML一样,XML为布局提供了一种可读的结构。XML中的每个元素都是View或ViewGroup对象(抑或它们的子类)。View对象是树的叶节点,而ViewGroup对象是树的分支(参阅楼上的视图层次图)。
XML元素的名称与它体现的Java类相对应。所以一个<TextView>元素将在你的UI中生成一个
TextView,而<LinearLayout>则创建一个
LinearLayout视图组。当你载入一个布局资源时,Android系统会根据你布局中的元素初始化这些运行时对象。
举例来说,一个包含文本视图和一个按钮的简单垂直布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextViewandroid:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Buttonandroid:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
请注意:LinearLayout 元素包含了TextView 和Button 对象。你可以在其中另外安置一个LinearLayout (或其它类型的视图组),以延展这个视图层次,构建更复杂的布局。
欲获知更多如何构建UI布局的内容,请参阅声明布局。
提示:您也可以用Java代码来绘制View和ViewGroup对象,并用addView(View)方法动态的插入新的View和ViewGroup对象。
您有相当多的方法来对视图进行布局。使用大量不同种类的视图组,您可以有近乎无穷的方式来构建子视图和视图组。Android提供了一些预定义的视图组,其中包括LinearLayout, RelativeLayout, AbsoluteLayout, TableLayout, GridLayout以及其它的一些。每个都为定义子视图和布局结构提供了一套独特的布局参数。
欲了解其它用于布局的不同种类的视图组,请参阅普通布局对象。
部件Widgets
部件是为用户交互界面提供服务的视图对象。Android提供了一套完整的部件实现,包括按钮、复选框、文本输入框等,以助于你快速的构建UI。Android还提供了一些更高级的部件,比如日期选择、时钟以及缩放控制。但您并没有被局限于Android平台提供的这些部件上。如果您想创建一些您自己的定制动作元素,您可以这么做,只要定义自己的视图对象或者扩展或合并现有的部件就行。
更多信息参阅构建自定义组件。
您可以在android.widget包中找到Android提供的部件列表。
用户界面事件UI Events
当你在用户界面中加入了一些视图和工具之后,你可能想要知道如何让它们与用户交互,进而实现你的动作。如欲获得用户界面事件通知,你需要做以下两件事情之一:
菜单Menus
应用程序菜单是应用程序用户界面中另外一个重要的组成部分。菜单为展现应用程序功能和设置提供了一个可靠的界面。按下设备上的MENU键会调出最普通的应用程序菜单。然而,你也可以加入当用户长按一个项目时调出的上下文菜单。
菜单也是用视图层次进行构架的,但你不必自己定义这个架构。你只要为你的Activity定义onCreateOptionsMenu()
和onCreateContextMenu()
回调方法,并声明你想要包含在菜单中的项目就行了。Android将为你的菜单自动创建视图层次,并在其中绘入你的菜单项。
菜单会自行处理它们的事件,所以你不必为你菜单中的项目注册事件侦听器。当你菜单中的一项被选定时,框架将自动调用onOptionsItemSelected()
或onContextItemSelected()
方法。
如同应用程序布局一样。你也可以在一个XML文件中定义你菜单中的项目。
更多信息,请参阅创建菜单。
高级话题Advanced Topics
一旦你对创建用户界面的基础了如指掌,你就可以尝试着用一些高级功能来创建更加复杂的应用程序界面。
适配器Adapter
有时候你会想要用一些无法硬编码的信息来填充视图组。你想将源于外部的数据绑定到你的视图中。为达到这个目的,你可以使用AdapterView作为你的视图组,并用Adapter传来的数据初始化每个子视图并填入其中。
AdapterView对象是一个用给定的Adapter对象为基础构建它的子视图的ViewGroup实现。而Adapter在你的数据源(可能是一个外部字符串数组)和显示这些数据的AdapterView之间扮演着一个信使的角色。针对特定的任务有着很多不同的Adapter类实现,比如CursorAdapter依据Cursor读出一个数据库的数据,而一个ArrayAdapter则从任一个数组进行读取。
想要了解如何运用Adapter填充你的视图,请参见用AdapterView绑定至数据。
风格与主题Styles and Themes
或许你对标准工具的外表不是那么满意。为了解决这个问题,你可以创建你自己的风格和主题。
- 风格是一套包含一个或多个格式化属性的整体,你可以把它们加诸于你布局中的单个元素之上。比如,你可以定义一个包含特定文本字体大小和颜色的风格,并将它单独施用于特定的视图元素。
- 主题也是一套包含一个或多个格式化属性的整体,但却应用于一个应用程序中的所有Activity,或单独一个Activity。比如说,你可以定义一个包含了特定窗口边框颜色和版面背景、以及一套字体大小和菜单颜色的主题。这个主题可以施用于特定的Activity抑或整个应用程序。
风格与主题隶属于资源。Android提供了一些默认的风格和主题供你使用,你也可以定制你自己的风格和主题资源。
相关推荐
2015年最新SAP用户界面技术路线图(sap user interface road map 2015.11)
EVC下得用户界面服务指南-part2,希望对做界面得朋友有帮助。
提供简单,合理的规则,无需任何艺术才能即可应用,以改善从传统GUI应用程序到网站再到消费电子产品的任何用户界面。
安卓用户界面开发入门 Android User Interface Development 书是全英的
此文档为MIT的 用户界面设计和实现(User Interface Design & Implementation)课程的官方讲义笔记,系统的介绍了用户界面设计的相关知识,并且其中结合多种例子进行分析,内容丰富且易于理解。
图形用户界面(Graphics User Interface):是指用图形化的方式实现用户与计算机之间的交互。通过图形的方式,借助于菜单、按钮等标准界面元素和鼠标操作,方便用户向计算机发出命令,启动程序,并将程序运行的结果...
Shooter Game User Interface Starter 射击游戏用户界面套件Unity用户接口插件C# 支持Unity版本2020.1.2及以上 为您的下一个射击游戏项目探索新的射击游戏用户界面套件。 所有屏幕均使用 Unity UI 和 Text Mesh Pro ...
A concise dissection of Apple's iOS user interface design principles IOS用户界面的设计原则。
The user interface design process involves user analysis, system prototyping and prototype evaluation. The aim of user analysis is to sensitise designers to the ways in which users actually work. UI ...
用户界面设计,比较经典的一本书!不知道以前有人上传没有!
用户界面User Interface 24 视图层次View Hierarchy 24 布局Layout 25 部件Widgets 26 用户界面事件UI Events 26 菜单Menus 26 高级话题Advanced Topics 27 适配器Adapter 27 风格与主题Styles and Themes 27 资源和...
用户界面User Interface 24 视图层次View Hierarchy 24 布局Layout 25 部件Widgets 26 用户界面事件UI Events 26 菜单Menus 26 高级话题Advanced Topics 27 适配器Adapter 27 风格与主题Styles and Themes ...
用户界面User Interface 24 视图层次View Hierarchy 24 布局Layout 25 部件Widgets 26 用户界面事件UI Events 26 菜单Menus 26 高级话题Advanced Topics 27 适配器Adapter 27 风格与主题Styles and Themes 27 资源和...
基于MATLAB的图形用户界面(GUI)设计 GUI设计工具简介
EVC下的用户界面服务指南-part3,希望对做界面的朋友有所帮助
EVC下得用户界面服务指南-part1,希望对做界面得朋友有帮助。
Windows CE用户界面服务指南. 窗口开发
1.图形用户界面( Graphical User Interface,简称GUI),是指采用图形方式显示的计算机操作界面。与早期计算机使用的命令行界面(类似 Python的IDLE窗口)相比,图形用户界面对于用户更加友好,用户不必记忆命令,使用鼠标...