`
smallsmile
  • 浏览: 135319 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android SDK 开发用户界面

阅读更多

用户界面
  在一个Android应用程序中,用户界面使用View和ViewGroup对象建立。view和view group有很多种,均为View类的子类。view对象是用户界面的基本单元。View类是widget的父类,widget为系统 内置ui对象,如文本框和按钮等等。ViewGroup类为layout类的父类,layout为不同种类的布局结构,例如线型、表格型和相对型。
  一个View对象是一个储存屏幕上的一块矩形的布局参数和内容的数据结构。一个View对象处理它自己的测量、布局、绘画、焦点变化、卷屏以及它所处的矩形区域内的键盘/手势交互。作为UI中的一个对象,View也是一个和用户交互信息 的地方。
  View Hierarchy
  在Android平台上,使用一个View和ViewGroup组成的层次结构来定义的一个Activity的UI,如下图所示。这个层次树可以简单也可以复杂,你可以使用Android预定义的widget和layout,也可以用你自己自定义的View来构建它。


   为将View层次树显示在屏幕上,你的Activity需要使用setContentView()方法,并将根节点对象传递给他。Android系统接 收到这个引用并用它来清除、测量和绘制这个树。根节点要求它的子节点能够绘制自己——每个组节点负责它自己的子view来绘制自己。子View可能会从父 View处获得大小和位置,但父对象最后决定子对象的大小。Android解析layout,初始化View并把它们加入它们的父View。由于它们按顺 序绘制,如果这些元素相互重叠,最后一个被绘制的元素将位于最上层。"How Android Draws Views"介绍了绘制的细节。
  Layout
  最常见的定义layout和表示view结构的方法就是使用一个xml layout文件。xml提供了一个人类可读的结构。xml的每个元素是一个View或者ViewGroup对象。View对象为树中的树叶,ViewGroup对象为树中的树枝。
  xml 元素的名称和它的java类相对应。因此一个元素创建一个TextView对象,一个元素创建一个LinearLayout的view group。当你加载一个layout资源时,Android系统会基于layout中的元素来初始化这些运行时对象。
  例如,一个简单的竖排布局,中间有一个text view和一个按钮,像这样:
  <?xml version="1.0" encoding="utf-8"?>
  
  <LinearLayout xmlns:andro
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >
  <TextView android:
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Hello, I am a TextView" />
  <Button android:
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Hello, I am a Button" />
  </LinearLayout>
  注意LinearLayout元素包含TextView和Button。你可以在这个LinearLayout中使用另一个LinearLayout,来创建更复杂的布局。
  提示:你也可以在Java代码中绘制View和ViewGroup,使用addView(View)方法来动态插入View和ViewGroup对象。
   有很多方法来布局你的view。使用不同的View group,你可以让View和viewgroup组织为任意的形式。一些预定义的Viewgroup有:LinearLayout, RelativeLayout, TableLayout, GridLayout等。
  Widgets
  widget是一个View对象,它作为一个和用户交互的接口。Android提供了一系列已经定义好的widget,例如按钮,复选框以及文本框等。还有一些更复杂的widget,例如日期选择器,始终以及缩放控制器等。你也可以定义自己的widget。
  UI Events
  一旦你在UI中加入View和widget,你可能希望知道用户对他们的操作,这样你就可以进行一些动作。为了得到UI事件,有下列两种方法:
   定义一个event listener并在View中注册它。通常这是你监听事件的方法。View类包含一系列嵌套的onListener接口,每个都有一个on()回调函 数。例如View.OnClickListener(处理View上的点击事件),View.OnTouchListener(处理触摸屏事 件),View.OnKeyListener(处理键盘事件)。因此如果你希望你的View处理点击事件,则定义OnClickListener的 onClick()方法并使用setOnClickListener()来注册它。
  重定义View的一个已有的回调函数。当你实现自己的View类并希望监听某些事件时采用这种方法。
  Menus
  应用程序菜单是UI的另一个重要部分。菜单提供了一个显示程序功能和设置的可靠接口。最常见的菜单是使用设备上的MENU键呼出的。你也可以使用长按屏幕上某个元素的方式来呼叫出上下文菜单(Context
Menu)。
  菜单也是用View层次来组织的,但是不要自己定义这个结构。使用onCreateOptionsMenu()和onCreateContextMenu()回调函数并定义菜单的内容。Android会自动建立需要的View结构并绘制其内容。
  菜单也需要处理他们的事件,因此不需要注册事件监听器(event listeners)。当菜单项被选择时,onOptionsItemSelected() 或 onContextItemSelected()方法会被调用。
  你也可以在xml中定义菜单的项。
  Advanced Topics
  Adapters
  有时候你希望给view group加入动态元素,这些元素不能硬编码,而是需要和外部数据相绑定。为了实现这一点,你需要用AdapterView作为view group,每一个子view使用adapter来进行初始化。
  The AdapterView object is an implementation of ViewGroup that determines its child views based on a given Adapter object. The Adapter acts like a courier between your data source (perhaps an array of external strings) and the AdapterView, which displays it . There are several implementations of the Adapter class, for specific tasks, such as the CursorAdapter for reading database data from a Cursor, or an ArrayAdapter for reading from an arbitrary array.
   AdapterView 是ViewGroup的一个实现,该view group使用一个给定的Adapter对象来确定它的子View。Adapter作为数据源(例如一个字符串数组)和AdapterView(负责显 示)中的一个联系人。有好几种特殊的Adapter实现,例如CursorAdapter(用于从一个Cursor读取数据库 数据)和 ArrayAdapter(用来从任意数组中读取数据)。
  Styles and Themes
  可以用样式和主题来自定义标准widget的外观。
  一个样式是一个或多个格式属性的集合,这些格式属性可以被作为独立的元素放在layout中。例如你可以定义一个样式,该样式制定了某种字体大小和颜色,并将它制定给某几个View元素。
   A theme is a set of one or more formatting attributes that you can apply as a unit to all activities in an application, or just a single activity. For example, you could define a theme that sets specific colors for the window frame and the panel background, and sets text sizes and colors for menus. This theme
can then be applied to specific activities or the entire application.
  一个主题是一个或多个格式属性的集合。这些属性可以对一个应用程序中所有的或一个activity使用。例如,你可以定义一个主题,制定了窗口框的颜色和面板北京颜色,以及菜单的字体字号等。一个主题可以被应用于某些activity或者整个应用程序。
  主题和样式是资源。Android提供了一些默认的样式和主题资源给你使用,你也可以定义自己的主题和样式。

分享到:
评论

相关推荐

    Google Android SDK开发范例大全(完整版)

    《Google Android SDK开发范例大全》是一本专为Android开发者准备的全面指南,它涵盖了从初学者到高级开发者所需的各种技能和实践案例。这本书的完整版包含了大量的代码示例和详细解释,旨在帮助读者深入理解Android...

    Android SDK开发范例大全

    ### Android SDK开发范例大全知识点概述 #### 一、Android SDK简介 Android SDK(Software Development Kit)是Android软件开发工具包,它包含了开发者创建应用程序所需的API库和开发工具。通过这些工具,开发者...

    Google Android SDK开发范例大全 源码2.rar

    《Google Android SDK开发范例大全》是一本深入探讨Android应用开发的权威指南,源码2.rar文件包含了本书中部分章节的实例代码,旨在帮助开发者更好地理解和实践Android开发中的各种技术。通过对这些源码的分析和...

    Android SDK开发范例大全(完整版)

    2. **布局设计**:XML是Android中用来定义用户界面的主要语言。开发者可以通过XML文件创建和组织视图组件,如按钮、文本框等,并通过布局管理器(如线性布局、相对布局、网格布局等)控制组件的排列方式。 3. **...

    android sdk android-33

    在实际开发中,开发者还需要设置 SDK 路径和 Android SDK Manager,这是一个图形界面工具,用于下载和管理所需的 SDK 组件。随着 Android 的不断更新,开发者需要保持 SDK 的最新状态,以便利用最新的功能和修复已知...

    Google Android SDK开发范例大全(第3版).pdf

    《Google Android SDK开发范例大全(第3版)》继承前两版由浅入深的方式,范例总数由原先的160多个增加到了200多个,在用户交互界面、手机控件、交互式通信服务、手机自助服务、娱乐多媒体等方面均增加了相应的范例来...

    Google Android SDK开发范例大全(第3版)

    《Google Android SDK开发范例大全(第3版)》继承前两版由浅入深的方式,范例总数由原先的160多个增加到了200多个,在用户交互界面、手机控件、交互式通信服务、手机自助服务、娱乐多媒体等方面均增加了相应的范例来...

    android SDK开发范例

    这个"android SDK开发范例"集合了03至06章节的例子,旨在深入解析Android SDK的使用和功能,帮助开发者掌握Android平台上的编程技巧。下面将详细讨论这些章节涵盖的关键知识点。 **第03章:用户界面设计** 这一章...

    Google Android SDK开发范例大全——示例代码

    Service是在后台运行的组件,即使用户界面不在前台也能执行任务。 此外,Android SDK还包括了用于图形绘制的View系统,如TextView、Button等基本控件,以及自定义视图的可能性。布局管理器如LinearLayout、...

    Android SDK (SDK Platforms)-android-31.zip

    9. **UI设计**:每个新版本的Android都会对用户界面进行改进,Android 12也不例外。例如,Material Design的设计语言得到了更新,引入了更大的动态性和个性化选项,开发者需要学习如何利用这些新特性来提升用户体验...

    Android SDK开发物超所值的几本好书2

    在Android SDK开发领域,选择合适的书籍至关重要,它们可以帮助开发者深入理解平台的工作原理,提升技能,以及创新解决问题。以下是一些物超所值的Android SDK开发书籍推荐,这些书籍的详细内容将有助于您成为一位...

    android sdk 开发范例大全 3 源码

    2. **Activity与Intent**:Activity是Android应用的基本组件,用于显示用户界面。Intent则用于在不同组件之间传递信息,启动或启动服务。源码中可能包含多种Activity间的切换和Intent的使用示例。 3. **布局与视图*...

    Android SDK开发物超所值的几本好书5

    在Android SDK开发的世界里,选择合适的书籍至关重要,它能帮助开发者深入理解平台的工作原理,提升编程技巧,并且激发创新思维。以下将详细讨论几本针对Android SDK开发极具价值的书籍,这些书籍涵盖了从基础到高级...

    Google Android SDK开发范例大全(完整版第3版)

    《Google Android SDK开发范例大全(第3版)》包含全新2.3以上版本精彩范例;新增HTML5手机应用程序范例;影音功能大突破,领先业界的影音播放功能详解;易于阅读的架构设计,边看边学,每个范例均搭配步骤及完成画面...

    Google Android SDK开发范例大全随书源码

    《Google Android SDK开发范例大全》是一本专为Android开发者准备的实践指南,它涵盖了从基础到高级的各种Android开发技术。这本书的随书源码包含了大量示例代码,旨在帮助读者深入理解Android SDK的使用方法,提升...

    Google Android SDK开发范例大全(第3版).pdf+源码

     《google android sdk开发范例大全(第3版)》继承前两版由浅入深的方式,范例总数由原先的160多个增加到了200多个,在用户交互界面、手机控件、交互式通信服务、手机自助服务、娱乐多媒体等方面均增加了相应的范例...

    android sdk开发范例大全 第二版

    《Android SDK开发范例大全 第二版》是一本专注于Android应用程序开发的实用指南,它针对Android SDK提供了丰富的实例,帮助开发者深入理解和应用Android平台的各种功能。这本书的扫描版可供需要学习Android开发的...

    Android SDK开发范例大全源码

    《Android SDK开发范例大全源码》是一本深入解析Android应用程序开发实践的资源集合,包含了从基础到进阶的各种示例代码。这份源码涵盖了第3章至第6章的内容,旨在帮助开发者全面理解Android SDK的使用方法和技巧。...

    Google Android SDK开发范例大全(完整版).pdf

    《Google Android SDK开发范例大全》是一本深入探讨Android应用开发的权威指南,它通过丰富的实例,详尽地解析了Android SDK中的各项功能和技术。这本书的完整版包含了从基础到高级的各种开发技巧,旨在帮助开发者从...

Global site tag (gtag.js) - Google Analytics