Activity是Android应用用户界面的基本组成部件。但Activity本身并不提供用户界面(User Interface)。从程序结构层次上来说,一个Android应用是类android.app.Application的一个实例, Application中可以包含多个android.app.Activity实例。每个Activity 带一个Window类,这个类在Android平台上没有提供太多功能,主要可以用来控制标题栏(屏幕顶端)。比如设置UI全屏显示可以使用如下代码:
1
2
3
|
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
Activty缺省是不含用户界面,如需显示用户界面,则可以调用setContentView()来设置Activity的ContentView。 ConentView描述了具体的UI组件,如文本框,标签,列表框,图片框的。
Android的用户界面其实就是指ContentView的设计。“View”开始会使人产生误解,在其它平台“View”一般指类似Form的概念。而在Android平台上View是UI组件,相当于其他平台的Component,ViewGroup相当于其它平台的Container,如下图所示:
有了这个对应关系就很容易将你已有的用户界面设计知识用在Android的用户界面设计上来。
此外Android用户界面设计一个推荐的方法是使用XML来描述UI,这也不是Android平台的首创,Java ME Polish,WPF,Silverlight等都采用XML来描述UI,使用XML来描述的好处是将用户界面和程序逻辑分开,可以做到用户界面的改变不影响程序逻辑,程序逻辑的变动也可以不影响用户界面,实际上是采用了MVC模式的设计。Activity 是MVC中的Controller,Activity的ContentView则是MVC中的View。如果你不想使用XML来描述UI,也可以使用代码来创建UI,不过这种方法既麻烦,也增加了模块之间的耦合度。
理解了Android的View和ViewGroup之后,具体设计用户界面并不复杂,一般来说ViewGroup定义它的子View的布局Layout,也就是其它View (文本框,标签等控件或是其它ViewGroup)在用户界面的位置安排。如上图所示,这个层次关系可以嵌套。通过嵌套,你可以定义出任意用户界面。
Android中的基本布局如下:
FrameLayout
最简单的布局对象
在屏幕上故意保留的空白空间,你可以之后填充一个单独的对象
例如:一个你要更换的图片
所有子元素都钉到屏幕的左上角
不能为子元素指定位置
LinearLayout
在一个方向上(垂直或水平)对齐所有子元素
所有子元素一个跟一个地堆放
一个垂直列表每行将只有一个子元素(无论它们有多宽)
一个水平列表只是一列的高度(最高子元素的高度来填充)
TableLayout
把子元素放入到行与列中
不显示行、列或是单元格边界线
单元格不能横跨行,如HTML 中一样
AbsoluteLayout
使子元素能够指明确切的X / Y 坐标显示在屏幕上
(0,0)是左上角
当你下移或右移时,坐标值增加
允许元素重叠(但是不推荐)
注意:
一般建议不使用AbsoluteLayout 除非你有很好的理由来使用它
因为它相当严格并且在不同的设备显示中不能很好地工作
RelativeLayout
让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象
如果不喜欢Eclipse IDE自带的UI设计工具,可以使用免费Android UI设计软件DroidDraw,下载DroidDraw
。
Android SDK的 ApiDemo中也介绍Android提供的各个UI组件(Menu,Dialog,TextView,Button,List等以及各个Layout)的用法。这里就不一一介绍了。
分享到:
相关推荐
【Android开发简明教程中文版】是一份专为初学者设计的详细教程,旨在帮助学习者快速掌握Android应用开发的基本技能。这份资料由经验丰富的教师编写,内容全面且深入浅出,适合对移动开发感兴趣的开发者或者在校学生...
《Android开发教程CHM》是一本专为Android开发者设计的详尽指南,旨在帮助初学者和有经验的开发者深入理解Android平台的各个方面。这个CHM(Microsoft Compiled HTML Help)文件包含了大量的信息,使得学习和查阅...
本教程主要介绍了Android APP开发的基本步骤,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,为读者提供了一个简明的Android APP开发入门教程。 一、准备工作 在开始Android APP开发之前,需要准备...
### Android简明应用程序开发知识点概览 #### 一、Android开发环境介绍 ##### 1.1 下载与安装 - **SDK安装**:Android SDK(Software Development Kit)是开发Android应用的基础工具包,包含了编译代码所需的库文件...
在Android手机应用开发简明教程中,我们将会深入学习如何构建功能丰富的移动应用程序,这些应用程序可以在全球数亿台Android设备上运行。Android平台是Google主导的开源操作系统,它为开发者提供了无限的创新空间和...
Unity的GUI系统允许开发者创建丰富的用户界面,包括文本、按钮、图像等元素。Unity5引入了新的UI系统,称为Unity UI,它基于Canvas和各种UI控件。学习如何布局控件、编写事件处理函数以及自定义样式将极大地提升...
《超爽Android中文教程》是一份专为初学者设计的教育资源,旨在以简明易懂的方式介绍Android操作系统的基础知识和开发技巧。这份教程通过中文解释,降低了语言障碍,使得学习过程更为顺畅。作为一份帮助文档,它涵盖...
本教程旨在为初学者提供一个简明易懂的Android入门指南,包括如何安装Android环境,以及一些基本的Android相关信息。 一、Android系统简介 Android操作系统基于Linux内核,它提供了丰富的应用程序框架,允许开发者...
综上所述,《VMware Workstation 8的简明使用教程》不仅详尽地介绍了虚拟机的创建与配置流程,还强调了安装VMware Tools的重要性,为用户提供了一个从零开始构建高效虚拟化环境的指南。通过遵循这些步骤,用户可以...
以上知识点概述了Android编程的基础,包括开发环境的搭建、应用结构的设计、用户界面的创建和活动生命周期的理解,同时也强调了版权和许可信息的重要性,确保读者在遵循版权法的前提下使用本教程。
本教程将简明地介绍如何创建和使用Android Widget,包括基本步骤、关键类和方法,以及配置文件的设置。 首先,创建一个Widget类,需要继承自`AppWidgetProvider`。`AppWidgetProvider`是Android系统用来处理Widget...
Duilib是一款开源的界面库,主要用于Windows平台上的GUI(图形用户界面)开发。它由国内开发者杨洪涛创建,提供了一套简洁而强大的接口,使得开发者可以快速地构建出美观的桌面应用程序。这个压缩包包含了关于Duilib...
**推荐资源**:阅读《Java大学简明教程》、《Java语言程序设计(基础篇)》以及观看马士兵的Java视频教程。 **实践项目**:在每个阶段结束时,完成一个小项目,例如坦克大战、贪吃蛇等,以巩固所学知识。 **第二部分...
FireMonkey 提供了一个基于组件的用户界面(UI)框架,可以创建出具有现代感和响应式的用户界面。它的图形层设计得十分灵活,能够适应不同分辨率和触摸输入,同时支持2D和3D图形渲染。 2. **跨平台开发** Delphi ...
本教程是针对初学者设计的一份简明教程,旨在帮助新用户快速掌握Eclipse的基本操作和核心功能。 1. **Eclipse安装与启动** - 下载:访问Eclipse官方网站,根据操作系统选择合适的版本下载。 - 安装:解压下载的...
FireMonkey是DelphiXE4中的关键组件,它是一个跨平台的用户界面框架。使用FireMonkey,开发者可以创建与平台无关的UI,一次编写,多处运行。在iOS平台上,FireMonkey提供了丰富的原生控件和图形功能,使得应用程序...
为了适配不同尺寸的手机屏幕,界面设计通常采用响应式设计。开发者需要掌握相关的响应式设计知识,也可以利用一些UI框架如Bootstrap或PureCSS,它们自带对响应式设计的支持。 在ThinkPHP项目中集成TPM,需要下载TPM...
Flex是Adobe公司开发的一种用于构建富...总的来说,“flex快速上手中文资料”应当涵盖了这些基础概念,并通过实例和简明教程帮助初学者快速上手。学习Flex不仅能够提升Web应用开发技能,还能为进入RIA领域打开大门。
- **Swing**:Swing 是 Java 中用于构建图形用户界面 (GUI) 的一组轻量级组件。 - **AWT**:Abstract Window Toolkit (AWT) 提供了一组重量级组件,用于构建 GUI 应用程序。 #### 十一、总结 通过以上介绍,我们...