Android基本组件(一)

546 查看

Android由 Andy Rubin 创立的一个手机操作系统,后被Google收购。
下面是一些常见的名词:
SDK:(software development kit)软件开发工具包。
AVD:(Android Virtual Device)安卓虚拟设备,在电脑上运行的“虚拟手机”。
ADT:(Android Development Tools)安装在Eclipse上的开发工具插件。
DDMS:(Dalvik Debug Monitor Service)可供Android调试和信息输出的一个控制台
ADB:(Android Debug Bridge)通过ADB工具可以在DOS下使用Linux命令调试AVD
APK:(AndroidPackage)Android程序的发布包

Android基本组件共分为七部分

一.第一组UI组件:布局管理器

1.LinearLayout顾名思义,可以控制各组件横向排列或纵向排列。
下面是XML代码:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!--    组件的排列方式,垂直排列 -->
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
<!--    组件的对齐方式,底部中间水平对齐 -->
    android:gravity="bottom|center_horizontal"
    >
<!--    添加了两个按钮 -->
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

</LinearLayout>

2.TablerLayout继承了LinearLayout,所以它本质依然是线性布局,它是通过添加TableRow来控制行数,TableRow里面可以添加组件来控制列数!
下面是XML代码:其中可看出此布局有《两行一列》。

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

       <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
        </TableRow>

    </TableLayout>
</LinearLayout>

3.FrameLayout可以把组件叠加在一起,不要小看叠加这么简单,灵活运用效果也是不错的。
下面是XML代码:可看见3个TextView叠加在一块,先添加的组件在上层。

    <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</FrameLayout>

4.RelativeLayout相对布局内子组件的位置由相对兄弟组和父容器来决定。
下面是XML代码:相对布局子组件的 Id 很重要

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
<!--    该子组件位于容器水平居中 -->
        android:layout_centerHorizontal="true"
        android:text="TextView" />

     <TextView
        android:id="@+id/textView2"
<!--    该子组件相对于id 为textView1 的右侧 -->
        android:layout_toRightof="@id/textView1"
        android:text="TextView" />

    <TextView
        android:id="@+id/textView3"
<!--    该子组件相对于id 为textView1 的下方-->
        android:layout_below="@id/textView1"
        android:text="TextView" />

</RelativeLayout>

5.GridLayout需要在Android4.0版本以后才能使用,它把容器分割成rows * columns个网格
下面是XML代码:

    <?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
<!--     设置该网格的 行数 和 列数  4*4 -->
    android:rowCount="4"
    android:columnCount="4">

</GridLayout>

6.AbsoluteLayout是有开发员通过X坐标,Y坐标来控制组件的位置。其中两个XML属性来定位组件的位置layout_x指定该组件的X坐标,layout_Y指定该组件的Y坐标。dp是一种基于屏幕密度的抽象单位,屏幕密度改变时dp的换算也会改变,所以绝对布局一般在开发中比较少用。
下面是XML代码:

    <?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="112dp"
        android:layout_y="84dp"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="109dp"
        android:layout_y="200dp"
        android:text="Button" />

</AbsoluteLayout>