2.安卓用户界面布局基础

二、
2.1 View  与用户交互的一个对象

安卓sdk  文档 https://developer.android.google.cn/reference/packages
Android Platform: API Level 25
android.view.View  View 是其他视图的基类 ;View类的子类一般位于android.widget包中
常用属性:
android:id  ,android:background , android:padding 属性

2.2 ViewGroup  布局容器
常用子类
 LayoutParams  adnroid:layout_height ,android:layout_width
MarginLayoutParams 外边距 大小layout_marginTop ,layout_marginBottom Left,Start  外边距设置  API17

依赖关系:容器能存放对象或者容器

                  ViewGroup
            丨      丨        丨
           View     View    ViewGroup
                              丨       丨       丨
                             View     View   ViewGroup  


3.1使用XML 布局文件控制UI界面
res/layout/activity_main.xml(任意java命名规范命名文件都可以)
默认自动生成
 Java 代码:setContentView(R.layout.activity_main);


3.2.2 自定义View 

开发步骤: 1.XML  帧布局管理器:FrameLayout
2.创建自定义View 继承View
3. 实例化View ,添加到Activity中 

属性带有margin的是外边距

属性带有padding 是内边距

属性带有layout_gravity 例如 layout 的是相对于 父容器的布局

没有layout的属性是相对于这个view的布局

 

 

3.2.1 xml方式布局

通常采用<FrameLayout>帧布局方式

设置背景图片,设置文本大小,设置文本引用字符串

 

3.2.2 自定义view

拖拽一个小兔子

1.xml 布局文件 :设置帧布局管理器id="@+id/mylayout"

2.java自定义view

3.MainActivity实例化view并添加到帧布局管理器中

实例:小兔子移动

 

指明了所有的布局管理器格式,才能采用里面的属性

 

3.3.1相对布局管理器----RelativeLayout

 

 

子组件摆放方式 gravity=center

忽略此id的位置摆放 ignoreGravity=@id/user  ,id=@+id/user

实例:软件更新界面

 

RelativeLayout.LayoutParams 几个重要的属性

 

同一个容器,组件之间的位置关系

layout_below  相对于其他组件下方;layout_toLeftOf 在其他组件左侧

layout_alignRight   相对于其他组件右对齐; layout_alignTop 在其他组件上方对齐

相对于父容器的位置关系

layout_alignParentTop 在父容器的上方对齐

layout_centerInParent 在父容器的中间

 

wrap_content :自己包裹的大小

match_parent: 和父组件一样长度

实例:

3.3.2线性布局管理器

LinearLayout
android:orientation="vertical"
<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="男"
        />
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="女"
        />
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="未知"
        />

垂直方向线性排列

3.3.3帧布局管理器----FrameLayout

后面添加的是叠在最上方的视图效果

<TextView
        android:layout_width="280dp"
        android:layout_height="280dp"
        android:layout_gravity="center"
        android:background="#FF0000FF"
        android:textColor="#FFFFFF"
        android:text="蓝色背景TextView!"
        />

    <TextView
        android:layout_width="230dp"
        android:layout_height="230dp"
        android:layout_gravity="center"
        android:background="#FF0077FF"
        android:textColor="#FFFFFF"
        android:text="天蓝色背景TextView!"
        />

    <TextView
        android:layout_width="180dp"
        android:layout_height="180dp"
        android:layout_gravity="center"
        android:background="#FF00B4FF"
        android:textColor="#FFFFFF"
        android:text="水蓝色背景TextView!"
        />

 

前景图片:位于所有图形的最上方,不被其他覆盖 

属性:foreground 表示为前景图片 ,foregroundGravity图片位置

实例:居中层叠正方形

3.3.4表格布局管理器

 

表格布局管理器:行列的形式管理添加的组件

 

TableRow行组件: 内部添加一个元素,即默认添加了一列

collspseColumns=”1,2”隐藏属性,隐藏第2,3列,多列采用逗号隔开

stretchColumns=”1”设置第二列被拉伸,拉伸宽度为屏幕剩余宽度

shrinkColums=”1”,设置第二列可以被收缩:比如第三列很长,如果不使用收缩,那么第三列会有信息被截断,使用收缩,则牺牲第二列的宽度以完整显示第三列

 

实例: 喜马拉雅登录界面

 

左右两侧留着2个空白列,使得中间的内容可以被拉伸

 

3.3.5网格布局管理器

 

  1. 表格布局管理器 只能跨列,网格可以跨行跨列
  2. 当一行超出显示,表格管理器无法显示;网格布局管理器自动换行
  3. 行,6列

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值