用户界面的概观  

        全部的Android应用程序的用户界面元素都是用View和ViewGroup对象构建的。View就是在手机屏幕上描绘一个能够与用户交互的一个对象。ViewGroup是包括View对象和其它ViewGroup对象的一个容器对象,以便定义所包括的接口的布局。

       Android提供的View和ViewGroup的子类的集合,为我们提供了了经常使用的输入控件(比方button和文本字段) 和各种布局模型(比方线性布局和相对布局)



用户界面的布局

       每一个应用程序的组件的用户界面都是用View和ViewGroup对象的层次结构来定义的,如图1所看到的。每一个ViewGroup是用来组织View对象的一个隐形的一个容器。这些View对象可能是输入控件或者其它窗口小部件。这个层次结构树依据你的需求可简单可复杂(可是简单对性能来说是最好的)

图1. 定义UI布局的view层次结构的插图

声明一个布局(在Activity类种onCreate方法中调用setContentView(R.layout.main))后,你能够在代码中实例化一个View对

象和创建一个树结构,可是最简单和最有效的方法是在一个xml文件里定义布局。这个XML文件提供了一个可读的布局结构,类似于HTML



View所相应的的XML元素的名字各自相应了它所代表的的Android类。所以一个<TextView>元素在UI中创建了一个TextView部件,一个<LinearLayout>元素创建了一个LinearLayout view group

举例说明,一个简单的包括text view和button的垂直布局例如以下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayoutxmlns: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="I am a TextView"/>

    <Buttonandroid:id="@+id/button"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="I am a Button"/>

</LinearLayout>



当你在你的应用程序中载入一个布局资源时,Android将该布局资源文件的每一个节点初始化成执行时的对象 。能够拿到这个对象(findViewById(R.id.tv))来定义附加的行为,查询此对象的状态,或者改动布局。

用户界面的组件

不一定必须通过View和ViewGroup对象来创建UI。Android提供的几个应用程序组件,为我们提供了标准的用户界面布局,我们仅仅需为这个布局定义内容就能够了。这些用户界面组件(比方Action Bar,Dialogs,Status Notifications)都有自己唯一的一组APIs,这些APIs都定义在各自的文档里。

Android用户界面概览的更多相关文章

  1. 【转】Android系统概览

    这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...

  2. android用户界面详尽教程实例

    android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...

  3. Android 用户界面---拖放(Drag and Drop)(三)

      设计拖放操作 本节主要内容如下: 1.  如何开始拖拽: 2.  在拖拽期间如何响应事件: 3.  如何响应落下事件: 4.  如何结束拖放操作. 开始拖拽 用户使用一个拖拽手势开始拖拽,通常是在 ...

  4. Android 用户界面---拖放(Drag and Drop)(二)

      拖拽事件监听器和回调方法 View对象既可以用实现View.OnDragListener接口的拖放事件监听器,也可以用View对象的onDragEvent(DragEvent)回调方法来接收拖拽事 ...

  5. Android 用户界面---拖放(Drag and Drop)(一)

    用Android的拖放框架,能够允许用户使用图形化的拖放手势,把数据从当前布局中的一个View对象中移到另一个View对象中.这个框架包括:拖拽事件类.拖拽监听器.以及辅助的方法和类. 尽管这个框架主 ...

  6. Android用户界面布局(layouts)

    Android用户界面布局(layouts) 备注:view理解为视图 一个布局定义了用户界面的可视结构,比如activity的UI或是APP widget的UI,我们可以用下面两种方式来声明布局: ...

  7. Android用户界面开发:Fragment

    Android用户界面开发:Fragment 1:注意事项  3.0以前的Android 版本要使用FragmentActivity 来装载Fragment ,使用到support v4包.  3.0 ...

  8. android用户界面的教程实例---转自qianqianlianmeng的博客

    1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.android用户界面之文本编辑教程实例汇总 ...

  9. Android用户界面设计:基本button

    Android用户界面设计:基本button 本文向你展示了在你的Android应用程序中创建一个简单的Button或ImageButton控件的步骤. 首先.你会学到怎样向你的布局文件里加入butt ...

随机推荐

  1. SGU 181.X-Sequence

    时间限制:0.5s 空间限制:4M 题意: 令X0=A, Xi=(a*Xi-1^2,b*Xi-1+c)%m; 求Xk,(0<=k<=109),(0<=a,b<=100),(1& ...

  2. Web控件

    Web控件可分三类 HTML控件 html服务器控件是在HTML控件的基础上,额外增加了一个在当前页面唯一的ID属性值和一个runat = "server" 属性html服务器控件 ...

  3. Java导出Excel和CSV(简单Demo)

    Java导出Excel和CSV的简单实现,分别使用POI和JavaCSV. JavaBean public class ReportInfo { int id; String date; int nu ...

  4. python 时间戳

    import timeprint time.time()输出的结果是(单位:s):1395421406.39 x = time.localtime(x) x = time.strftime('%Y-% ...

  5. Laravel框架——增删改查

    增: //save返回true false $res = new member(); res->username = 'a'; $res->password = 'b'; dd($res- ...

  6. MVC身份验证及权限管理

    MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供了三种方式,其中最常用的就是我们的Form认证,需要配置相应的信息.例如下面的配置信息: < ...

  7. js 实现 aop

    Aop又叫面向切面编程,用过spring的同学肯定对它非常熟悉,而在js中,AOP是一个被严重忽视的技术点,这篇就通过下面这几个小例子,来说说AOP在js中的妙用. 1, 防止window.onloa ...

  8. Catch That Cow

    poj3278:http://poj.org/problem?id=3278 题意:给你一个n和k,n可以加1也可以减1,还可以乘2,现在要求n经过这样的几步变换可以使得n==k:求得最小的步数.题解 ...

  9. OTP语音芯片和掩模语音芯片(mask)的区别

    OTP(One Time Programable)是MCU的一种存储器类型,意思是一次性可编程:程序烧入IC后,将不可再次更改和:因此OTP语音芯片就是指一次性烧录的语音IC. 从OTP定义上来看,只 ...

  10. SetTimer and CreateWaitableTimer的例子(静态函数设置为回调函数,瑞士的网页,有点意思)

    Timers (SetTimer and CreateWaitableTimer) in Windows   SetTimer The following example creates a time ...