[Android]用户界面设计

1. 声明性设计

设计用户界面的方法有两种,过程性设计和声明性设计。过程性设计是指用代码设计用户界面,例如,开发一个Swing应用程序时必须编写Java代码,以创建和操作所有用户界面对象。声明性设计不涉及任何代码,例如,在设计网页时使用HTML,描述了期望的网页布局,而不是如何实现。

Android同时支持过程性和声明性设计,允许开发人员使用任一风格创建用户界面,即可以绝大部分使用Java代码,也可以绝大部分使用XML描述符。虽然二者都是有效的,但谷歌建议尽可能使用声明性的XML语言,与相应的Java代码相比,XML代码往往更加短小易懂,而且在以后版本中发生变化的可能性不高。

Android程序是一个松散的活动集合,其中的每个活动都定义了一个用户界面屏幕。R.layout.activity_main是一个资源标识符,引用了res/layout目录中的activity_main.xml文件,如下所示:

2. 资源管理

activity_main.xml文件以XML格式声明用户界面,在运行时,Android解析并实例化该文件中已定义的资源,并将其设置为当前活动的视图。R类是由Android Eclipse插件自动管理的,无论将一个文件放到res目录中的哪个位置,Android Eclipse插件都会注意到这一变化并自动在gen目录的R.java文件内添加资源ID,如果删除或修改了某个资源文件,R.java将保持同步,如下所示:

Android资源管理器使用十六进制整数加载实际数据、字符串,以及被编译到软件包中的其他资源。无需关心这些资源的值,只要记住这些值是引用数据的句柄,而不是引用包含数据的对象的句柄。需要使用对象之前不会解压缩对象。

在Eclipse中双击activity_main.xml即可打开该文件,根据Eclipse的具体设置,双击activity_main.xml后出现的可能是可视化的布局编辑器,或是一个XML编辑器。单击底部的activity_main.xml选项卡,查看XML文件,可以看到对<RelativeLayout>的引用,如下所示:

3. 布局

布局是存放一个或多个子对象及某种行为的容器,行为描述了如何将这些子对象放置在屏幕上其父对象的矩形区域中,以下是Android中最常用的几种布局:

1) FrameLayout: 框架布局,从屏幕的左上角开始显示子对象,主要用于选项卡视图和图像切换器。

2) LinearLayout: 线性布局,以单列或单行的形式显示子对象,这是最常用的布局方式。

3) RelativeLayout: 相对布局,相对于其他子对象或父对象的位置显示子对象,这种布局常用于表单中。

4) TableLayout: 表格布局,以多行和多列的方式显示子对象,类似HTML表格。

各种布局方式常用的一些参数如下:

1) xmlns: android="http://schemans.android.com/apk/res/android" 定义Android的XML命名空间,该参数只能在main.xml文件中的第一个XML标签处定义一次。

2) android: layout_width="fill_parent", android:layout_height="fill_parent",声明此布局的高度和宽度与父对象的高度和宽度相同。

如果在编辑器中看到关于缺少语法约束的警告,可以尽管忽略,与将英语文本硬编码到布局文件中不同,可以使用@string/resid这种语法形式引用res/values/strings.xml文件中的字符串。根据区域设置或其他参数的设置情况,还可以有其他资源文件。此外还可以使用一种新的语法形式:@id/resid,与引用在其他地方定义的资源ID不同,这种语法形式将创建一个新的资源ID供其他对象引用。

4. 实现对话窗口

可以在屏幕上创建一个弹出提示窗口,并显示一些与窗口有关的信息,阅读完这些文字后,可以按下按钮关闭窗口。实现这个功能有多种方法:

1) 定义一个新的Activity类并启动它。

2) 使用AlertDialog类并显示它。

3) 子类化Android的Dialog类并显示它。

下面将定义一个新的活动,它也需要一个布局文件,比如将文件命名为res/layout/activity_about.xml,如下所示:

About活动应该在AboutActivity.java文件中定义,只需覆写onCreate()方法并调用setContentView()方法即可,如下所示:

在activity_main.xml中添加一个Button,以便与About活动关联,如下所示:

而后在MainActivity.java中添加一些导入语句,在onCreate()方法中添加代码以调用findViewById()和setOnClickListener()方法,findViewById()方法用于根据资源ID查找Android视图,setOnClickListener()方法则通知Android当用户触摸或单击该视图时应触发哪个对象,如下所示:

要想在Android中启动某个活动,首先需要创建Intent类的实例。Android中有两种Intent,public的Intent是在系统级注册的,可从任何应用程序内使用,private的Intent只能在一个应用程序内使用。此外,每个活动都需要在AndroidManifest.xml文件中声明,运行效果如下:

5. 应用主题和菜单

主题是一个样式集合,可用于覆写Android部件的外观,Android附带了多个主题,可以通过名称进行引用。别外,通过子类化现有主题并覆写其默认值,用户也可以构造自己的主题。可以在res/values/styles.xml文件中自定义主题,要使用主题,首先在编辑器中再次打开AndroidManifest.xml文件,然后修改About活动的定义,如下所示:

样式名称前的@android:前缀表示此处引用了由Android定义的资源,而不是用户自己在程序中定义的资源,再次运行程序,如下所示:

Android支持两类菜单:一种是在用户按下Menu按钮时弹出的菜单,另一种是用户用手指按住屏幕不放时弹出的上下文菜单。以第一种菜单为例,需要使用在res/menu/main.xml文件中定义的菜单,如下所示:

再使用MainActivity类中的onCreateOptionsMenu()方法,如下所示:

getMenuInflater()方法返回一个MenuInflater实例,用于从XML文件中读取菜单定义并将其转换为实际的视图,用户选择任何菜单项时都将会调用onOptionsItemSelected()方法。

时间: 2024-10-11 22:29:28

[Android]用户界面设计的相关文章

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

Android用户界面设计:基本按钮 本文向你展示了在你的Android应用程序中创建一个简单的Button或ImageButton控件的步骤.首先,你会学到如何向你的布局文件中添加按钮控件.然后你会学习如何用两种方法处理用户对按钮的点击.最后,我们讨论Android中按钮控件一些其它的可用特性. 第1步:创建Android应用程序 我们从创建Android程序开始.你平常一样完成你的Android应用.一旦你已经创建项目并可以运行,决定你希望向什么样的屏幕添加Button控件.可能你就简单地创

Android用户界面设计:框架布局(转)

摘要:框架布局是Android开发者组织视图控件最简单和最有效的布局之一.通过本文,你将学到所有关于框架布局的知识,它们主要用来在屏幕上组织特别的或重叠的视图控件.使用得当的话,很多有趣的Android程序用户界面都可以基于框架布局来设计. 框架布局是将控件组织在Android程序的用户界面中最简单的布局类型之一. 理解布局对于良好的Android程序设计来说是非常重要的.在这个教程里,你将学到所以关于框架布局的知识,它们主要用来在屏幕上组织特别的或重叠的视图控件.使用得当的话,很多有趣的And

android用户界面设计

1.android.provider包下的常用类 该包下提供了访问联系人信息,日历信息,多媒体文件的类. 常用的类.   MediaStore.Audio.Media类 public static final Uri EXTERNAL_CONTENT_URI; The content:// style URI for the "primary" external storage volume. String DEFAULT_SORT_ORDER ;//The default sort

Android SDK上手指南 2:用户界面设计

http://mobile.51cto.com/ahot-419184.htm 内容简介 我们将为应用程序项目添加布局方案,在这方面XML与Eclipse ADT接口将成为工作中的得力助手--不过在后面两节中还会用到一部分Java开发知识.XML与Java在Android平台的开发工作当中可谓无处不在,如果大家对二者还缺乏基本的了解,请尽快想办法补补课.对于刚刚入门的读者朋友来说,本文所介绍的要点将成为各位日后开发工作的重要基础. 1. XML基础知识 在我们开始讨论布局之前,先来梳理作为标记语

(8 Android) 用户界面UI设计

(8 Android) 用户界面UI设计 3.1.1 Android界面视图类 Android 图形化的用户界面(Graphical User Interface , GUI) 采用了结构清晰的MVC模型(Model-View-Controller) ,其具体含义: ·提供了处理用户输入的控制器(Controller) ; ·显示用户界面的视图(View) ; ·保存数据和代码的模型(Model) . 在Android MVC中,控制器是由Activity组件完成的,它能够接受并响应程序的外部动

Android零基础入门第16节:Android用户界面开发概述

相信通过前面15期的学习,Android的开发环境已经基本掌握了,如果仍有问题,欢迎到Android零基础入门技术讨论微信群交流,从本期开始正式来一步一步踏入Android开发之路. Android应用开发的一项内容就是用户界面的开发.Android提供了非常丰富的用户界面组件,借助于这些用户界面组件,开发者可以非常方便地进行用户界面开发,而且可以开发出非常优秀的用户界面. 一.界面UI元素介绍 Android应用是运行于手机系统上的程序,这种程序给用户的第一印象就是用户界面.接下来从以下几个方

Web开发人员不要错过的60款用户界面设计工具(上)

Web开发大师们,干货再次来袭!小编为大家盘点了60款功能丰富类型各异的用户界面设计工具,本系列将以上中下三篇分别为大家呈现.今天盘点的这20款工具囊括了大量界面原型设计工具,有免费的在线原型工具,有iPhone/Android/Facebook应用原型设计工具,还有各种综合型的UI原型工具,应用尽有,绝对能满足你的日常工作需求. 1. ForeUI 一款非常简单易用的界面原型设计工具,可以创建任何应用程序或网站的线框和原型. 2. LivePipe UI 这款工具是构建在Prototype J

Android界面设计适配不同屏幕的尺寸和密度解读

Android是运行在各种提供不同的屏幕尺寸和密度的设备.Android系统提供跨设备的统一开发环境和处理大部分的工作,以调整每个应用程序的用户界面,以在其上显示的画面. 同时,该系统提供了API,允许您控制您的应用程序的UI特定的屏幕尺寸和密度,以优化你的用户界面设计,不同的屏幕配置.作为设计师也要最大程度地为所有设备的体现良好的用户体验或是方便使用阅读,而不是简单地拉伸以适应屏幕上的设备. 25学堂跟大家分享这篇Android界面设计适配不同屏幕的尺寸和密度的问题.有几个知识点需要解读下.

Android UI设计规则

Android UI技巧 1.1 不该做什么 l  不要照搬你在其它平台的UI设计,应该让用户使用感觉是在真正使用一个Android软件,在你的LOGO显示和平台整体观感之间做好平衡 l  不要过度使用模态对话框 l  不要使用px单位,使用dp或者为文本使用sp l  不要使用固定的绝对定位的布局 l  不要使用太小的字体 1.2 该做什么 l  要为高分辨率的屏幕创建资源 l  要使用适当的间距 l  要正确管理活动(Activity) l  要正确处理屏幕的方向变化 l  需要点击的元素要