屏幕的构成
活动包含了视图和试图组。视图是一个可以在屏幕上显示的小部件,例如按钮、标签、文件框。视图派生自基类android.view.View
一个或多个视图可以组成一个视图组,视图组(本身就是一种特殊的视图类型)提供了一种布局,您可以按该布局指定视图的外观和顺序,视图组派生于基类 android.view.viewGroup。android支持以下五种视图组:
线性布局(LinearLayout)
以单行或单列的形式排列视图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:layout_width="160dp"
android:layout_height="wrap_content"
android:text="Button"
android:layout_gravity="left"
android:layout_weight="1" />
<Button
android:layout_width="160dp"
android:layout_height="wrap_content"
android:text="Button"
android:layout_gravity="center"
android:layout_weight="2" />
<Button
android:layout_width="160dp"
android:layout_height="wrap_content"
android:text="Button"
android:layout_gravity="right"
android:layout_weight="3" />
</LinearLayout>
表格布局(TableLayout)
以行和列的形式组织视图,每一行可以包含一个或者多个视图,行内的每一个视图构成一个单元格,每一列的宽度由最大单元格的宽度决定
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
>
<TableRow>
<TextView
android:text="User Name:"
android:width ="120dp"
/>
<EditText
android:id="@+id/txtUserName"
android:width="200dp" />
</TableRow>
<TableRow>
<TextView
android:text="Password:"
/>
<EditText
android:id="@+id/txtPassword"
android:password="true"
/>
</TableRow>
<TableRow>
<TextView />
<CheckBox android:id="@+id/chkRememberPassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Remember Password"
/>
</TableRow>
<TableRow>
<Button
android:id="@+id/buttonSignIn"
android:text="Log In" />
</TableRow>
</TableLayout>
帧布局(FrameLayout)
在屏幕上可以用来显示一个单个视图的占位符,添加到FrameLayout中的视图常常锚定在布局的左上方。如果在FrameLayout中添加另一个视图(如button),这个视图将覆盖先前的视图。虽然在FrameLayout可以添加多个视图,但是每一个视图都是堆叠在前一个上面。可以放置一系列图片做成动画。
ScrollView是一种特殊类型的FrameLayout。
<RelativeLayout
android:id="@+id/RLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/lblComments"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, Android!"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/lblComments"
android:layout_below="@+id/lblComments"
android:layout_centerHorizontal="true"
>
<ImageView
android:src = "@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="124dp"
android:layout_height="wrap_content"
android:text="Print Picture" />
</FrameLayout>
</RelativeLayout>
相对布局(RelativeLayout)
可用于指定子视图相对于彼此之间如何定位的,由下面一些属性来定位
- layout_alignParentTop
- layout_alignParentLeft
- layout_alignLeft
- layout_alignRight
- layout_bleow
- layout_centerHorizontal
<RelativeLayout
android:id="@+id/RLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TextView
android:id="@+id/lblComments"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, Android!"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/lblComments"
android:layout_below="@+id/lblComments"
android:layout_centerHorizontal="true"
>
<ImageView
android:src = "@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="124dp"
android:layout_height="wrap_content"
android:text="Print Picture" />
</FrameLayout>
</RelativeLayout>
绝对布局(AbsoluteLayout)
已废弃,可以指定其子元素的确切位置
<AbsoluteLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<Button
android:layout_width="188dp"
android:layout_height="wrap_content"
android:text="Button"
android:layout_x="126px"
android:layout_y="361px"
/>
<Button
android:layout_width="113dp"
android:layout_height="wrap_content"
android:text="Button"
android:layout_x="12px"
android:layout_y="361px"
/>
</AbsoluteLayout>
适应显示方向
当改变Android设备的方向时,当前活动实际上是先被销毁,然后在重新创建。这是因为当显示方向上发生改变时,都会触发活动的onCreate()方法。
通常可以使用下面两种技术来处理屏幕方向的变化
锚定视图.
将视图锚定到屏幕的四条边是最容易的方法
涉及到的属性有很多,下面举几个常见的
layout_alignParentLeft 将视图与其父视图的左侧对齐
layout_alignParentRight 将视图与其父视图的右侧对齐
layout_centerVertical 将视图在其父视图中水平居中
调整大小和重新定位
基于屏幕方向定制用户界面的更简单方法是为每个方向上的用户界面创建一个新的视图文件。为了支持横屏模式,可以在res下新建一个文件夹,取名为layout-land
管理屏幕变化方向
当设备旋转时,活动先被销毁,然后被重新创建。所以对于任何活动。需要在onPause()方法中保存任何你需要保存的状态。当活动被销毁时,只有那些被命名的视图(android:id)才能保持他们的状态。
以编程的方式创业页面
可以通过xml的方式来拖动来展示页面,也可以通过编程方式创建页面。两者效果一样,但是在工作量上面xml方式更占优势
倾听用户页面通知
用户和用户页面在两个层面上进行交互,活动层面和视图层面。在活动层面,除了通常的一些方法外还有下面一些常用的方法
onkeyDown() 当键盘按下并且没有被活动中的任何视图处理时调用;
onkeyUp() 当键盘弹起并且没有被活动中的任何视图处理时调用;
onMenuItemSelected() 当用户选择了面板的菜单时调用;
onMenuOpened() 当用户打开了面板的菜单时调用;
分享到:
相关推荐
在Android入门学习四中,我们将深入探讨Android系统框架,这是理解Android应用开发核心的重要环节。Android系统框架由多个层次组成,包括Linux内核、硬件抽象层、系统运行库、应用程序框架以及应用程序本身。这些...
**第五章:界面适配与多语言支持** Android设备的屏幕尺寸和分辨率各异,因此,良好的应用需要能够适应各种屏幕。本章会介绍如何使用布局资源和维度资源进行屏幕适配,以及如何添加多语言支持,使应用能够服务全球...
Android Studio内置了JUnit和 Espresso 测试框架,我们可以编写单元测试和UI测试来验证代码逻辑和用户界面行为。同时,使用模拟器或连接真实设备进行调试,有助于找出并修复问题。 最后,当App开发完毕,我们需要...
Android入门学习资料是一套专为初学者设计的教育资源,涵盖了Android开发的基础知识和技能。这份资料集合了网络上的各类教程、文档和示例代码,旨在帮助新手快速掌握Android应用开发的基本概念和技术。由于该压缩包...
第13章通常涉及用户界面(UI)设计,这在Android应用中至关重要。在这个章节,你可能会学习到如何使用XML布局文件创建各种UI元素,如按钮、文本框、图像视图等。此外,还会介绍如何使用Android Studio的布局编辑器来...
通过这个完整的Android入门Demo,开发者不仅可以学习到基础控件的使用,还能理解服务和广播的机制,掌握Android应用开发的核心概念。实践中不断练习,将有助于提升Android编程技能,为成为专业开发者奠定坚实基础。
Android入门学习笔记主要涵盖了Android开发的基础知识,包括平台概述、环境搭建、基本概念以及实际应用开发的各个方面。这里我们将深入探讨这些关键知识点。 一、Android平台概述 Android是由Google主导开发的一款...
"Android入门及深入学习资料"是一份专为Android新手设计的教程集合,旨在帮助你快速理解并掌握Android应用开发的基本概念和核心组件。下面将详细阐述这份教程中可能涵盖的关键知识点。 1. **Android基础知识**: -...
8. **多线程与异步处理**:在Android中,主线程(UI线程)负责处理用户界面,避免在此线程进行耗时操作,以免阻塞UI。学习使用AsyncTask、Handler、Looper、Thread和Runnable等进行异步编程。 9. **网络编程**:...
2. **灵活性**:Android提供了高度的定制性,制造商可以根据需要定制用户界面和预装应用程序。 3. **丰富的应用生态**:通过Google Play商店,Android设备可以下载数百万款应用程序。 4. **跨设备兼容性**:Android...
这个“Android入门demo源码”是专为初学者设计的学习资源,旨在通过实际操作来帮助理解Android开发的基本概念和流程。下面将详细解析这个Demo中涉及的关键知识点。 1. **Eclipse集成开发环境**: 本项目使用Eclipse...
"Android入门快速入门第一天"这个主题旨在帮助新接触Android开发的朋友们迅速建立起对这个平台的理解和实践能力。在这个阶段,我们将涵盖以下几个核心知识点: 1. **Android系统概述**:Android是由Google主导的...
Android Studio中的布局编辑器允许开发者直观地设计用户界面,包括使用LinearLayout、RelativeLayout、ConstraintLayout等布局管理器。开发者可能还会学习到如何添加各种UI组件,如按钮(Button)、文本输入框...
在Android入门学习中,贪吃蛇小游戏是一个经典的实践项目,它可以帮助初学者理解Android应用的基本架构、用户界面设计以及事件处理等核心概念。本框架旨在为Android新手提供一个清晰的学习路径,通过实现贪吃蛇游戏...
你会接触到XML布局文件,学习如何使用LinearLayout、RelativeLayout、ConstraintLayout等布局管理器来构建复杂的用户界面。同时,还将学习如何动态地在代码中添加和修改视图元素,以满足动态需求。 资源管理和国际...
- `android.view`:用户界面组件和事件处理的基类。 - `android.util`:工具类,如日期和时间的处理。 - `android.webkit`:用于网页浏览的接口。 - `android.widget`:包含各种UI小部件,如按钮、列表视图等。 ...
学习如何配置环境,创建项目,以及使用XML布局文件设计用户界面是入门阶段的重要任务。此外,还会讲解Java或Kotlin编程语言的基础知识,这两种语言都是Android开发的首选。 Android应用程序的基本组成包括活动...
《Android入门教程及参考手册》是一部专为初学者设计的指南,旨在帮助用户快速掌握Android应用开发的基础知识。本教程集合了Android开发者官方网站上的丰富资源,涵盖了从安装开发环境到编写第一个应用程序的所有...
5. **布局与UI设计**:学习XML语言来创建用户界面,掌握LinearLayout、RelativeLayout和ConstraintLayout等布局管理器。同时,了解如何使用ImageView、TextView、Button等控件,并使用Design View进行可视化布局设计...