• 2018-2019-2 20189205《移动平台应用开发实践》第七周作业


    Android学习

    布局

    Android界面六大基本布局分别是:

    • 线性布局LinearLayout
    • 表格布局TableLayout
    • 相对布局RelativeLayout
    • 层布局FrameLayout
    • 绝对布局AbsoluteLayout
    • 网格布局GridLayout。
      其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局。在手机程序设计中,绝对布局基本上不用,用得相对较多的是线性布局和相对布局。

    线性布局

    线性布局中,将布局中的组件线性排列,有两种排法:

    • 从左到右:android:orientation=”horizontal”
    • 从上到下:android:orientation=”vertical”

    常用的属性有:

    • android:id - 为控件指定相应的ID
    • android:text - 指定控件当中显示的文字,需要注意的是,这里尽量使用string.xml
    • android:gravity - 指定控件的基本位置,比如说居中,居右等位置
    • android:textSize - 指定控件当中字体的大小
    • android:background - 指定控件所用的背景色,RGB命名法
    • android:layout_width - 指定控件的宽度
    • android:layout_height - 指定控件的高度
    • android:layout_weight - 指定控件的占用比例
    • android:padding - 指定控件的内边距,也就是说控件当中的内容
    • android:sigleLine - 如果设置为真的话,则将控件的内容显示在一行当中

    相对布局

    相对布局中,组件的位置参考其他控件进行布局,默认为父控件。
    相对布局有三种类型的属性:

    **属性值是true或false **

    • android:layout_centerHrizontal 水平居中
    • android:layout_centerVertical 垂直居中
    • android:layout_centerInparent 相对于父元素完全居中。
    • android:layout_alignParentBottom 位于父元素的下边缘
    • android:layout_alignParentTop 位于父元素的上边缘
    • android:layout_alignParentLeft 位于父元素的左边缘
    • android:layout_alignParentRight 位于父元素的右边缘

    属性值是”@id/*“

    • android:layout_below 在某元素的下方
    • android:layout_above 在某元素的上方
    • andorid:layout_toRightOf 在某元素的右方
    • android:layout_toLeftOf 在某元素的左方
    • android:layout_alignBottom 和某元素下方对齐
    • android:layout_alignTop 和某元素上方对齐
    • android:layout_alignRight 和某元素右方对齐
    • android:layout_alignLeft 和某元素左方对齐

    属性值是数值

    • android:layout_marginLeft 离某元素左边缘的距离
    • android:layout_marginRight 离某元素右边缘的距离
    • android:layout_marginTop 离某元素上边缘的距离
    • android:layout_marginBottom 离某元素下边缘的距离

    层布局

    层布局的特点是从左上角开始,后面的会覆盖前面的控件。
    在普通功能的软件设计中层布局用得也不多,其主要应用就是地图方面。

    表格布局

    表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,且所以子元素宽度和高度一致。
    在TableLayout中,单元格可以为空,但是不能跨列,意思是只能不能有相邻的单元格为空。

    常用属性:

    • android:shrinkColumns:设置可收缩的列,内容过多就收缩显示到第二行
    • android:stretchColumns:设置可伸展的列,将空白区域填充满整个列
    • android:collapseColumns:设置要隐藏的列

    网格布局

    GridLayout网格布局是Android4.0之后新加入的布局方式,与表格布局大同小异,不过也新增了一些内容:

    • 1.可以设置容器中组件的对其方式。
    • 2.容器中的组件可以跨多行也可以跨多列

    监听器

    监听器是一个存在于View类下的接口,一般以On**Llistener命名,实现该接口需要复写相应的on(View v)方法。

    实现

    方法一:
    在Activity中定义一个内部类继承监听器接口(这里是OnClickListener)。常见的继承方法如下:

    class MyListener implements View.OnClickListener{
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();
            }
        }
    

    方法二:
    实现匿名内部类。这种方法适合只希望对监听器进行一次性使用的情况,在该代码块运行完毕之后,该监听器也就不复存在了。

    bt1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();
                }
            });
    

    方法三:
    利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法。

        public void onButtonClick (View view){
            Toast.makeText(MainActivity.this,"you have clicked Button3",Toast.LENGTH_SHORT).show();
        }
    }
    

    在布局文件中的设置

    <Button
            android:layout_below="@id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button3"
            android:text="Button3"
            android:onClick="onButtonClick"/>
    
  • 相关阅读:
    文件和网络
    设备支持
    用户界面概述
    介绍
    图形和描画
    应用程序偏好设置
    文本和Web
    人机界面准则:创建优秀的用户界面
    事件处理
    iPhone OS平台:丰富的可能性
  • 原文地址:https://www.cnblogs.com/hzj20189205/p/10706812.html
Copyright © 2020-2023  润新知