android布局讲义
- 格式:ppt
- 大小:191.50 KB
- 文档页数:19
Android组件---四⼤布局的属性详解【声明】欢迎转载,但请保留⽂章原始出处→_→Android常见布局有下⾯⼏种:LinearLayout:线性布局。
所有的控件都是串在⼀条线上的。
RelativeLayout:相对布局。
所有的控件的位置,都是相对于⽗控件的。
FrameLayout:帧布局。
FrameLayout布局中的控件都是⼀层⼀层的。
帧布局每次添加的控件都显⽰在最上⾯,最后显⽰在界⾯上的是最后添加的⼀个控件。
TableLayout:表格布局。
表格布局可以实现的.⼀般可以使⽤线性布局实现。
AbsoluteLayout:绝对布局。
已经是废弃的状态,很少⽤了。
orientation:属性是指定线性布局的排列⽅向。
horizontal ⽔平。
线性布局默认的朝向是⽔平的。
vertical 垂直例如:android:orientation="vertical"gravity:指定当前控件⾥⾯的内容容显⽰位置。
(四⼤layout中均可使⽤)left 左边right 右边top 上边bottom 底边例如:android:gravity="center"gravity中的属性可以组合使⽤。
例如:android:gravity="bottom|right"layout_gravity:指定当前控件在⽗元素的位置。
(只在 LinearLayout 和 FrameLayout 中有效)left 左边right 右边top 上边bottom 底边centercenter_horizontalcenter_vertical例如:android:layout_gravity="center"另外,需要提⽰的是,对于 LinearLayout :当 android:orientation="vertical" 时,只有⽔平⽅向的设置才起作⽤,垂直⽅向的设置不起作⽤。
安卓之布局总结Adroid布局有⼈形象地⽐喻,Android开发中的布局就相当于⼀栋建筑的外观架构。
布局⽤得好,这栋建筑的外观才美观⾼⼤上。
Android布局管理器Android布局管理器本⾝是⼀个界⾯控件,所有的布局管理器都是ViewGroup类的⼦类,都是可以当做容器类来使⽤的。
因此⼀个布局管理器中可以嵌套其他的布局管理器。
这是⾕歌上找的⼀张布局管理器层级图每⼀个ViewGroup都可以嵌套其他的ViewGroup和View(视图)。
⼀个ViewGroup的⼤⼩是相对的,它即可以是其他ViewGroup的⽗容器,也可以是其他ViewGroup的⼦容器。
在Android中,ViewGroup指代的是布局管理器,也就是下⾯要讲的布局样式,View指代的是布局管理器中的⼀个个控件。
在Android中,控件可以在XML⽂件中定义,也可以程序员根据⾃⼰的需要去定义⼀个类。
本⽂重点先不讨论视图中的控件,还是回归到布局。
Android六⼤基本布局管理器分别是:线性布局(LinearLayout)、表格布局(TableLayout)、⽹格布局(GridLayout)、相对布局(RelativeLayout)、绝对布局(AbsoluteLayout)、层布局(FrameLayout)其中,表格布局是线性布局的⼦类。
⽹格布局是android 4.0后新增的布局。
(1)线性布局线性布局会将容器内的所有控件⼀个挨着⼀个地排列。
属性:1. 排列⽅向android:orienation = “ horizontal/vertical”⽔平排列和垂直排列,Android中默认为垂直排列vertical注意:默认情况下⽔平和垂直⽅向的排列只占⼀⾏,如果⽤android:layout_width来设定控件的宽度,如果控件宽度太⼤,超出屏幕的显⽰范围,屏幕是不会显⽰超出的范围的。
2. 对齐⽅式⽤于控制元素(例如⽂字)在该控件⾥的显⽰位置。
Android线性布局常用属性内容概览GravityPaddingWeightgravity与layout_gravityandroid:gravity:用于设置该控件中内容相对于该控件的对齐方式android:layout_gravity:用于设置该控件相对于父控件的对齐方式一个属性可以包含多个值,需用”|”分开。
其含义如下:padding与margin边距android:padding:用于设置该控件中内容相对于该控件的边距,即内边距。
android:layout_margin:用于设置该控件相对于其他控件的边距,即外边距。
Weightlayout_weight的值用于在线性布局中指定父控件剩余空间的分配比例。
淡蓝色区域就是first和second控件的父控件的剩余空间。
当我们分别在两个textView中添加android:layout_weight=”1”时候就变成了也就是这个父控件剩余空间被1:1的平均分成两份,此时父控件就已经被这两个子控件填满了。
但问题是:first和second是按照1:1的比例把这个父控件平分了吗?答案是否定的。
first的宽度本身比second小,通过weight只是把父控件的剩余空间1:1平均分配,而first的宽度和second宽度并不相同。
被设置weight值的控件,宽度应为该控件的原宽度+父控件的剩余空间乘以比例水平方向的线性布局中:使用weight时,需注意将宽度设置为0dp垂直方向的线性布局中:使用weight时,需注意将高度设置为0dp面试题中会经常考这样一个题:如果把两个TextView中的宽度设置为match_parent,那么两个控件的比例是相反的。
计算公式如下:first的宽度:match_parent(原宽度)+(match_parent(父控件宽度)-(match_parent+match_parent)(两个子控件宽度))*1/3设match_parent为afirst的宽度:a+(a-2a)*1/3=a-1/3a=2/3afirst的宽度为父控件宽度的2/3 second的宽度:a+(a-2a)*2/3 =a-2/3a=1/3a。
Android开发⾃学笔记(AndroidStudio)—4.1布局组件⼀、引⾔Android的界⾯是有布局和组件协同完成的,布局好⽐是建筑⾥的框架,⽽组件则相当于建筑⾥的砖⽡。
组件按照布局的要求依次排列,就组成了⽤户所看见的界⾯。
在Android4.0之前,我们通常说Android开发五⼤布局和四⼤组件,这五⼤布局就是:1. LinearLayout 线性布局2. FrameLayout 单帧布局,也有中⽂翻译为帧布局、框架布局。
3. RelativeLayout 相对布局4. AbsoluteLayout 绝对布局5. TableLayout 表格布局⽽在Android4.0之后⼜新增了⼀种GridLayout⽹格布局。
⼆、LinearLayout线性布局线性布局是Android开发中最常见的⼀种布局⽅式,它是按照垂直或者⽔平⽅向来布局,通过“android:orientation”属性可以设置线性布局的⽅向。
属性值有垂直(vertical)和⽔平(horizontal)两种。
线性布局的排列在某⾏或者某列并不会⾃动换⾏或换列,就是说如果采⽤⽔平布局,控件宽度超过屏幕显⽰的话,后⾯的控件都将被隐藏,不会⾃动换⾏。
常⽤的属性有:1. android:orientation:可以设置布局的⽅向2. android:id - 为控件指定相应的ID3. android:text - 指定控件当中显⽰的⽂字,需要注意的是,这⾥尽量使⽤string.xml4. android:gravity - 指定控件的基本位置,⽐如说居中,居右等位置5. android:textSize - 指定控件当中字体的⼤⼩6. android:background - 指定控件所⽤的背景⾊,RGB命名法7. android:layout_width - 指定控件的宽度8. android:layout_height - 指定控件的⾼度9. android:layout_weight - 指定控件的占⽤⽐例10. android:padding - 指定控件的内边距,也就是说控件当中的内容11. android:sigleLine - 如果设置为真的话,则将控件的内容显⽰在⼀⾏当中layout_weight属性以控制各个控件在布局中的相对⼤⼩。
Android系统常用布局介绍Android中的布局包括线性布局,表格布局,相对布局,帧布局,绝对布局。
下面分别对每个布局进行一个介绍。
在介绍android的布局管理器之前,有必要了解android平台下的控件类。
首先要了解的是View类,该类为所有可视化控件的基类,主要提供了控件绘制和事件处理的方法。
创建用户界面所使用的控件都继承自View,如TextView,Button,CheckBox等。
补充:另外一个需要了解的是ViewGroup类,它也是View类的子类,但是可以充当其他控件的容器。
ViewGroup的子控件既可以是普通的View,也可以是ViewGroup。
Android中的一些高级控件如Gally,GirdView等都继承自ViewGroup。
一:线性布局:LinearLayout类简介线性布局是最简单的布局之一,它提供了控件水平或者垂直排列的模型。
同时,使用此布局时可以通过设置控件的weight参数控制各个控件在容器中的相对大小。
LinearLayout布局的属性既可以在布局文件(XML)中设置,也可以通过成员方法进行设置。
案例:1.在布局管理器中实现布局:在eclipse中新建一个项目。
首先打开项目文件夹下res/values目录下的string.xml,写入一下内容:<?xml version=”1.0”encoding=”utf-8”?><resources><string name=”app_name”>LinearExample</string><string name=”button”>按钮</string><string name=”add”>添加</string></resources>说明:在string.xml中主要声明了程序中要用到的字符串资源,这样将所有字符串资源统一管理有助于提高程序的可读性及可维护性。
Androidstudio——LinearLayout(线性布局)Android中有六⼤布局,分别是:LinearLayout(线性布局)RelativeLayout(相对布局)TableLayout(表格布局)FrameLayout(帧布局)AbsoluteLayout(绝对布局)GridLayout(⽹格布局)线性布局。
这个布局简单的说,就是所有控件都依次排序,谁也不会覆盖谁。
线性布局需要定义⼀个⽅向,横向(Android:orientation="horizontal")或纵向(android:orientation="vertical")。
也就是说,控件要么就并排横向的排列,要么就纵向的笔直排列。
⽽Android的开发常⽤到的有LinearLayout和RelativeLayout。
我们屏幕适配的使⽤⽤的⽐较多的就是LinearLayout的weight(权重属性)。
下⾯的关于LinearLayout的⼀些知识。
<LinearLayout +代码> </LinearLayout>⽔平布局android:background="#ef0000"背景颜⾊android:layout_weight="1"块所占的权重android:gravity="center_vertical">对齐⽅式android:id="@+id/LinearLayout1" :为该资源控件设置⼀个资源 id,在 Java 代码中可以通过 findViewById(id) 找到该控件android:layout_width="match_parent":布局的宽度设置为填满⽗容器android:layout_height="match_parent":布局的⾼度设置为填满⽗容器android:orientation="horizontal":布局中控件的排列⽅式设置为⽔平⽅向android:layout_height="fill_parent:布局⾼度设置为充满⽗容器android:layout_margin:外边距,布局或控件距离外部元素的边距android:layout_padding:内边距,布局或控件距离内部元素的边距tools:context=".MainActivity":声明当前布局提供给 activity 使⽤android:layout_weight:设置权重,按⽐例划分⽔平⽅向,将涉及到的 View 的 android:layout_width 属性设置为 0dp,然后使⽤ android:layout_weight 属性设置⽐例即可,如上所⽰,第⼆个 LinearLayout 是第⼀个的两倍。