菜单

从零开始–系统深入学习android(实践-让我们开始写代码-Android框架学习-1.用户界面和布局)

2020年1月15日 - 金沙国际唯一官网

RelativeLayout是一个在相对位置上显示子View元素的VeiwGroup,一个视图的位置,可以指定为相对于兄妹的元素(比如一个给定的与孙的左边或者下边)或者心爱那个对于RelativeLayout区域的位置(比如与底部对齐,剩下的中心)

第1章 用户界面和布局

应用程序的用户界面就是用户能看到并可以与它交互的任何东西。Android提供多种预置的UI组件,如结构化布局对象和允许你为应用程序创建图形
用户界面的UI控件。Android也会为特殊的接口提供其他UI模块,如对话框,通知和菜单。在一个Android应用中,所有用户界面元素都是由
View和ViewGroup对象创建的。View
是一种可以在屏幕上绘制某种画面并且可以与用户互动的对象。ViewGroup对象则是为了定义布局的接口而保存其他View(和ViewGroup)对
象。Android提供一个View和ViewGroup子类的集合,这个集合能为你提供相同的输入控制(例如按钮和文本框)和各种各样的布局模式(例如
一个线性或者相对布局)

Android:日常学习笔记(8)———探究UI开发(3)

一个RelativeLayout是一个非常强大使用的为设置用户界面的布局,因为它可以消除嵌套的视图组ViewGroup,如过你发现你用了几个嵌套的LinearLayout组,你可以替换为一个单独的RelativeLayout

1.1 用户界面布局

对应用程序的每个组件来说,用户界面都是由View对象和ViewGroup对象的层次结构来定义的,如图1-1所示。每一个view
group都是用来组织子view的一个不可见容器,然而子
views可能是输入控制UI或者绘制UI某些部分的其他widgets。这个树形结构可以根据你的需要简单化或复杂化。(但是对于性能来说简单最好)

图片 1 

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

为了声明你的布局,你可以在代码中实例化View对象然后启动构建树,但定义布局最容易、最有效的方法是利用XML文件。XML文件可以为布局提供
一个可读结构,这与HTML文件相似。一个View的XML节点名称与它代表的Android类相对应。所以UI里的一
个<TextView>节点会创建一个TextView
widget,一个<LinearLayout>节点会创建一个LinearLayout view
group。例如,包含一个文本视图和一个按钮的简单纵向布局,正如代码清单1-1所示:

图片 2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I am a Button" />
</LinearLayout>

图片 3

 

代码清单1-1

当你在应用程序中载入一个布局资源时,Android会初始化每个进入到正运行对象的布局节点,这时你可以用它来定义附加行为,查询对象状态,或修改布局。

详解四种基本布局

1、开始一个新的工程,名字叫做HelloRelativeLayout

1.2 用户界面组件

你不需要用View和ViewGroup对象来构建你所有的UI。Android系统提供了几个标准UI布局的应用程序组件,因此你只需要定义内
容。这些应用程序组件都有一组唯一的API,如Action Bar,Dialogs,和Status
Notifications,这些都会在他们各自的文档中被一一介绍。

前言

布局定义用户界面的视觉结构,如Activity或应用小部件的
UI。您可以通过两种方式声明布局:

2、打开res/layout/main.xml文件并且插入如下信息

1.3 布局(Layout)

布局为用户界面定义了一个可视化结构。可以用两种方式声明一个布局:

◆在XML中声明UI元素

Android提供了简单的XML元素,它的元素名字与View类以及子类对应,就像布局和widgets一样。

◆在运行时动态实例化布局元素

使用代码创建布局元素(并且操作他们的属性)

 

Android提供了非常灵活的方法来声明和管理应用UI。例如,可以先在XML中声明默认布局,屏幕元素会根据它们的属性显示。接下来可以在应用
中添加代码来修改屏幕对象的状态,也可以在运行时修改在XML中声明的对象。
在XML中声明UI的好处是,可以更好地区分显示和控制这些行为的代码。UI描述与应用代码无关,也就是说可以修改和调整XML中的UI布局但是不用修改
源java代码。例如,能够为不同的屏幕目标、不用的设备屏幕大小、不同的语言创建不同的XML布局文件。另外,在XML中声明布局使得UI更容易可视
化,这样更容易调试界面。本章主要用于教会你如何在xml中声明布局。如果你对运行时动态创建布局感兴趣,那么请参考viewgroup以及view类说
明。
一般来说,xml声明UI元素的词汇和类的命名以及方法名密切相关,元素根据类名、属性名根据方法名来命名。实际上,能猜到什么XML属性对应一个类的方
法,
或者能够猜到哪个类对应给定的XML元素,这往往是直接的对应。但是,注意并不是所有的词汇都是等同的。在某些情况下,有的命名有些许不同。例
如,EditText元素有个text属性对应EditText.setText()方法。

编写XML

  您可以利用 Android 的 XML 词汇,按照在 HTML
中创建包含一系列嵌套元素的网页的相同方式快速设计 UI
布局及其包含的屏幕元素。

  每个布局文件都必须只包含一个根元素,并且该元素必须是视图对象或 ViewGroup
对象
。定义根元素之后,即可再以子元素的形式添加其他布局对象或小部件,从而逐步构建定义布局的视图层次结构。例如,以下这个
XML 布局使用垂直 LinearLayout 来储存一个 TextView 和一个 Button

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello, I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
</LinearLayout>

 重要:

  在 XML 中声明布局后,请在您的
Android
项目 res/layout/ 目录中以 .xml 扩展名保存文件,以便其能够正确编译

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
        <TextView
                android:id="@+id/label"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Type here:"
    />
           <EditText
                   android:id="@+id/entry"
                   android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   android:background="@android:drawable/editbox_background"
                   android:layout_below="@id/label"
    />
    <Button
            android:id="@+id/ok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/entry"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10dip"
            android:text="OK"
    />
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@id/ok"
            android:layout_alignTop="@id/ok"
            android:text="Cancel"
    />
</RelativeLayout>

1.4 写XML

使用android的XML词汇,可以快速的设计UI布局和它们包含的屏幕元素。跟创建web页面使用html类似(一系列的嵌套)。
每一个布局文件必须包含一个根节点。这个根节点必须是一个View
或者ViewGroup对象。一旦你定义了根节点,可以添加任意的布局对象或者widgets作为子元素,逐步构建一个View层次布局。例如,这是一个
XML布局文件使用了纵向的线性布局(LinearLayout)来排列一个TextView和Button,如代码清单1-2所示:

图片 4

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello, I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
</LinearLayout>

图片 5

 

代码清单1-2

这个文件应该是在当前android工程/res/layout/目录下.xml的扩展名来保存这个文件,这样才会正确编译。我们接下来会讨论这里显示的每个属性。

加载 XML 资源

  当您编译应用时,每个 XML 布局文件都会编译到一个 View 资源中。
您应该在 Activity.onCreate() 回调实现中从您的应用代码加载布局资源。请通过调用 setContentView(),以 R.layout.layout_file_name 形式向其传递对布局资源的引用来执行此操作。例如,如果您的
XML 布局保存为main_layout.xml,则需要像下面这样为您的 Activity
加载该布局:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
}

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图