Android五大布局-130903
安卓之布局总结
安卓之布局总结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 的界面布局及基本控件
使用XML资源文件创建布局
流式布局元素标签
用于指定流式布局的方向:分 别为vertical和horizontal
用于指定元素的水平宽度,有 三种取值:fill_parent表示当前
View是Android控件的一个基类,一个View就是屏幕上的一个矩形区域, 主要负责绘制元素和事件处理。View提供了许多用于界面显示的子类,例 如按钮类Button、文本显示区域TextView类、EditText类等 。我们往往利用 View类的这些子类去绘制界面元素。View类的详细说明如下图所示:
流式布局LinearLayout
LinearLayout是线性布局控件,它包含的子控件将以横向或竖 向的方式排列,按照相对位置来排列所有的组件或者其他的容器, 超过边界时,某些组件将缺失或消失。因此一个垂直列表的每一 行只会有一个组件或者是容器,而不管他们有多宽,而一个水平 列表将会只有一个行高(高度为最高子控件的高度加上边框高 度)。 LinearLayout有两个重要的属性:
帧式布局FrameLayout
帧式布局FrameLayout:在Android的五大布局中是最简 单的布局方式,在需要布局中的控件有重叠的情况下才使 用。 在它上面可以添加多个组件,所有组件都被固定在 界面的左上角,叠加显示,后一个组件会在前一个组件之 上显示 ,也就是说后一个组件会全部或部分的覆盖前一 个组件。
该属性用于指定R.java中的某 个特定资源ID
该属性用于指定元素内文字的大小
View及ViewGroup简介
我们知道Activity是Android应用程序基本的功能单元,Android的每一个 窗口都是一个Activity。但是Activity并不能真正的显示出来,我们要显示界 面信息,需要在Activity中通过调用方法setContentView(View view)来实现, 也就是说真正显示出来的是View。
Android系统五大布局
Android系统五大布局Android系统中为我们提供了五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。
其中最常用的的是LinearLayout、TablelLayout和RelativeLayout。
这些布局都可以嵌套使用。
(一)RelativeLayout相对布局相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。
它灵活性大很多,当然属性也多,操作难度也大,属性之间产生冲突的的可能性也大,使用相对布局时要多做些测试。
下面是常用的一些属性RelativeLayout用到的一些重要的属性:第一类:属性值为true或falseandroid:layout_centerHrizontal水平居中android:layout_centerVertical垂直居中android:layout_centerInparent相对于父元素完全居中android:layout_alignParentBottom贴紧父元素的下边缘android:layout_alignParentLeft贴紧父元素的左边缘android:layout_alignParentRight贴紧父元素的右边缘android:layout_alignParentTop贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物第二类:属性值必须为id的引用名“@id/id-name”android:layout_below在某元素的下方android:layout_above在某元素的的上方android:layout_toLeftOf在某元素的左边android:layout_toRightOf在某元素的右边android:layout_alignTop本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom离某元素底边缘的距离android:layout_marginLeft离某元素左边缘的距离android:layout_marginRight离某元素右边缘的距离android:layout_marginTop离某元素上边缘的距离EditText的android:hint设置EditText为空时输入框内的提示信息。
Android系统五大布局详解
Android系统五大布局详解我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的。
组件就是我们常见的Button、TextEdit等等。
那么我们平时看到的Android手机中那些漂亮的界面是怎么显示出来的呢?这就要用到Android的布局管理器了,网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了。
在分析布局之前,我们首先看看控件:Android中任何可视化的控件都是从android.veiw.View继承而来的,系统提供了两种方法来设置视图:第一种也是我们最常用的的使用XML文件来配置View的相关属性,然后在程序启动时系统根据配置文件来创建相应的View视图。
第二种是我们在代码中直接使用相应的类来创建视图。
如何使用XML文件定义视图:每个Android项目的源码目录下都有个res/layout目录,这个目录就是用来存放布局文件的。
布局文件一般以对应activity的名字命名,以 .xml 为后缀。
在xml中为创建组件时,需要为组件指定id,如:android:id="@+id/名字"系统会自动在gen目录下创建相应的R资源类变量。
如何在代码中使用视图:在代码中创建每个Activity时,一般是在onCreate()方法中,调用setContentView()来加载指定的xml布局文件,然后就可以通过findViewById()来获得在布局文件中创建的相应id的控件了,如Button等。
如:private Button btnSndMag;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main); // 加载main.xml布局文件btnSndMag = (Button)this.findViewById(R.id.btnSndMag); // 通过id找到对于的Button组件}下面我们来介绍Android系统中为我们提供的五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。
Android培训之五大布局讲解
Android培训之五大布局讲解Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。
组件按照布局的要求依次排列,就组成了用户所看见的界面。
Android的五大布局分别是LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局)和TableLayout(表格布局)。
LinearLayout:LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。
如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。
如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。
LinearLayout中的子元素属性android:layout_weight生效,它用于描述该子元素在剩余空间中占有的大小比例。
加入一行只有一个文本框,那么它的默认值就为0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以是同为1。
如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为1和2,那么第一个文本框将占据剩余空间的三分之二,第二个文本框将占据剩余空间中的三分之一。
FrameLayout:FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置。
Android五大布局方式详解
Android五⼤布局⽅式详解Android中常⽤的5⼤布局⽅式有以下⼏种:线性布局(LinearLayout):按照垂直或者⽔平⽅向布局的组件。
帧布局(FrameLayout):组件从屏幕左上⽅布局组件。
表格布局(TableLayout):按照⾏列⽅式布局组件。
相对布局(RelativeLayout):相对其它组件的布局⽅式。
绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。
1. 线性布局线性布局是Android开发中最常见的⼀种布局⽅式,它是按照垂直或者⽔平⽅向来布局,通过“android:orientation”属性可以设置线性布局的⽅向。
属性值有垂直(vertical)和⽔平(horizontal)两种。
常⽤的属性:android:orientation:可以设置布局的⽅向android:gravity:⽤来控制组件的对齐⽅式layout_weight:控制各个组件在布局中的相对⼤⼩第⼀个实例①效果图:②核⼼代码如下:main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"><EditTextandroid:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="right"><!-- android:gravity="right"表⽰Button组件向右对齐 --><Buttonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:text="确定"/><Buttonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:text="取消"/></LinearLayout></LinearLayout>第⼆个实例①效果图:②核⼼代码:mian.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1"><TextViewandroid:text="red"android:gravity="center_horizontal"android:background="#aa0000"android:layout_width="wrap_content"android:layout_height="fill_parent"android:layout_weight="1"/><!--android:gravity="center_horizontal"⽔平居中 --><!--layout_weight属性以控制各个控件在布局中的相对⼤⼩。
android常用布局介绍
top Buttom
描述
将视图放到屏幕的顶端 将视图放到屏幕的底端
Left
Right Center_vertical
将视图放在屏幕的左侧
将视图放在屏幕的右侧 将视图按照垂直方向居中显示
horizontal_vertical
将视图按照水平方向居中显示
RelativeLayout相对布局
RelativeLayout可以设置某一个视图相对于其他视图的位置,这些位置 可以包括上下左右等
TableLayout布局
在TableLayout布局中,一个列的宽度由该列中最宽的那个单元 格指定,而表格的宽度是由父容器指定的。在TableLayout中, 可以为列设置三种属性: Shrinkable:如果一个列被标识为Shrinkable,则该列的宽度可 以进行收缩,以使表格能够适应其父容器的大小。 Stretchable:如果一个列被标识为Stretchable,则该列的宽度 可以进行拉伸,以使填满表格中的空闲空间。 Collapsed:如果一个列被标识为Collapsed,则该列会被隐藏 注意:一个列可以同时具有Shrinkable属性和Stretchable属性 ,在这种情况下,该列的宽度将任意拉伸或收缩以适应父容器
对应方法
setColumnCollapsed(int, boolean) setShrinkAllColumns(boo lean) setStretchAllColumns(bo olean)
描述
设置指定列号的列属性为 Collapsed 设置指定列号的列属性为 Shrinkable 设置指定列号的列属性为 Stretchable
线性布局LinearLayout
线性布局是最常用的布局线性布局在xml文件中使用 <LinearLayout>来定义 线性布局可以分为水平和垂直的方向的布局,可以通过 android:orientation=“vertical”来定义方向,该属性可以有 horizontal和vertical两个方向。 <LinearLayout>标签中有一个很重要的属性gravity,该属性用 于控制布局中视图的位置,如果设置多个值需要使用 | 进行分 隔,属性如下:
Android_Layout
AndroidLayout有五大布局对象,分别是FrameLayout(帧布局)LinearLayout (线性布局)AbsoluteLayout(绝对布局)RelativeLayout(相对布局)TableLayout(表格布局)FrameLayout该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。
Container 所包含的widgets或者是container的队列是采用的堆栈的结构,最后加进来的widgets或者是container显示在最上面。
所以后一个widgets或者是container将会直接覆盖在前一个widgets 或者是container之上,把它们部份或全部挡住(除非后一个widgets或者是container是透明的,必须得到FrameLayout Container的允许)。
其中Main.xml代码如下:<?xml version="1.0"encoding="utf-8"?><FrameLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/><TextViewandroid:textColor = "#0000FF"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:text = "@string/hello2"/></FrameLayout>Strings.xml代码如下:<?xml version="1.0"encoding="utf-8"?><resources><string name="hello">Hello World, LayoutTestActivity!</string><string name="app_name">LayoutTest</string><string name="hello2">Hello World, I can not be LOST!</string></resources>如下图,其中TextView Hello2是最后FrameLayout最后加入的,所以该TextView应该是覆盖整个屏幕的,TextView hello1被其覆盖:LinearLayoutLinearLayout是一个盒子模型(Box Model),以垂直或水平的方向,按照相对位置来排列所有的widgets或者其他的containers。
Android系统常用布局介绍
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中主要声明了程序中要用到的字符串资源,这样将所有字符串资源统一管理有助于提高程序的可读性及可维护性。
界面布局汇总和解析
界面布局汇总和解析为了适应各式各样的界面风格,Android系统提供了5种布局,这5种布局分别是:LinearLayout(线性布局)TableLayout(表格布局)RelativeLayout(相对布局)AbsoluteLayout(绝对布局)FrameLayout(框架布局)利用这五种布局,可以在屏幕上将控件随心所欲的摆放,而且控件的大小和位置会随着屏幕大小的变化作出相应的调整。
下面是这五个布局在View的继承体系中的关系:一、LinearLayout(线性布局)线性布局是程序中最常见的一种布局方式,线性布局可以分为水平线性布局和垂直线性布局两种,通过android:orientation 属性可以设置线性布局的方向。
下面是一个简单的线性布局的例子:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="wrap_content"><EditTextandroid:layout_width="fill_parent"android:layout_height="wrap_content" /><LinearLayout xmlns:android="/apk/res/android"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="right"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确定"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="取消" /></LinearLayout></LinearLayout>对应的模拟器上的布局效果以及框架图如下所示:最外层布局为垂直线性布局,宽度为整个屏幕(fill_parent),高度为刚好适合子控件(wrap_content)。
android常用控件及布局
一、概述Android的控件体系分为三个类别:1、基本控件2、布局3、容器这三类控件主要分布在两个包中:1、android.view 提供抽象接口2、android.widget 提供系统内置的大部分控件整个系统得控件都继承自android.view.View ,而布局及容器类继承自android.view.ViewGroup。
基本控件主要包括ImageView、ProgressBar、SurfaceView、TextView、EditText等。
布局虽然布局跟容器均继承自android.view.ViewGroup,但并不像SWT那样提供了面板+布局的结构,而是每种Layout就是一中特殊的面板,包括AbsoluteLayout、FrameLayout、LinearLayout、TableLayout、RelativeLayout等。
容器这里的容器是指采用了特定的布局并且提供了行为的控件,包含ListView、GridView、Gallery、Spinner等。
二、android常用控件android常用控件之TextView、EditView、Button、Menu示例:一个计算应用程序,输入2个数字,点击按钮进行计算两个数的积并且返回结果。
当点击模拟器右侧的Menu按钮,在输入界面中显示一个有关于和退出的菜单。
项目运行效果图:开发步骤:1、新建一个Android项目2、在布局文件中依次添加EditText、TextView、EditText、Button(一定要按照界面上控件显示的顺序在布局文件中添加)3、再新建一个布局文件用来显示计算的结果;在这个布局文件中添加一个LinearLayout和一个TextView(默认的布局文件中默认就有一个LinearLayout,所以不需要手动添加,新建的布局文件默认为空,所以需要手动添加)4、编写第一个Activitya) 让Activity继承android的Activityb) 重写Activity的onCreate()方法c) 设置这个Activity的布局文件d) 根据控件id获得控件对象e) 设置控件的值,这个值引用的是string.xml中的值,所以还需要在string.xml文件中设置(最好是使用string.xml中的值,以便实现国际化);这个在布局文件中也能设置;5、新建一个Activity,ResultActivitya) 让Activity继承android的Activityb) 重写Activity的onCreate()方法c) 设置这个Activity的布局文件d) 根据控件id获得控件对象6、在第一个Activity中编写Button的监听器a) 取得两个EditText控件的值b) 创建Intent对象c) 将这两个值存放到Intent对象当中d) 使用Intent对象启用ResultActivitye) 将监听器与Button绑定7、在第二个Activity(ResultActivity)中获得Intent对象a) 获得Intent对象中保存的值并强制转换成int类型b) 计算两个值的积c) 设置控件值8、在第一个Activity中,重写onCreateOptionsMenu()方法,这个方法是用于添加菜单中的菜单项,我们添加两个菜单项9、再在第一个Activity中重写onOptionsItemSelected()方法,这个方法是当点击菜单中菜单项时调用。
Android笔试总结
(4)RelativeLayout 相对布局,根据另外一个组件或是顶层父组件来确定下一个组件的位置。和CSS里面的类似。
private String perTag; //记录前一个标签的名称
/**
* 重写父类的开始文档方法。用于初始化
*/
@Override
publicvoid startDocument() throws SAXException {
persons =new ArrayList<Person>();
<persons>
<person id="1">
<name>张三</name>
<age>22</age>
</person>
<person id="2">
<name>李四</name>
<age>23</age>
</person>
</persons>
复制代码
定义一个名为Person的javaBean用于存放上面解析出来的xml内容
import com.sinber.domain.Person;
publicclass PersonDefaultHandler extends DefaultHandler {
android开发_ViewGroup(组视图)--五大布局
android开发_ViewGroup(组视图)--五⼤布局view组--ViewGroup(组视图)ViewGroup的作⽤:在view中添加⼦控件。
ViewGroup的5个⼦类,就是五⼤布局:(1) LinearLayout 线性布局(常⽤)(2) RelativeLayout 相对布局(常⽤)(3) FrameLayout 帧布局(4) AbsoluteLayout 绝对布局(5) TableLayout 表格布局1 LinearLayout 线性布局:在该布局下包含的⼦布局列表为横向或纵向排布1.1 LinearLayout 默认是横向布局,即:从左到右布局控件指定布局⽅向: android:orientation=“ ”1 <!-- 指定布局⽅向的属性:orientation,2 属性值:horizontal(横向)3 vertical(纵向)4 -->56 <!--横向布局-->7 <LinearLayout xmlns:android="/apk/res/android"8 android:layout_width="match_parent"9 android:layout_height="match_parent"10 android:orientation="horizontal" >1112 <!--纵向布局-->13 <LinearLayout xmlns:android="/apk/res/android"14 android:layout_width="match_parent"15 android:layout_height="match_parent"16 android:orientation="vertical" >1.2 权重(只有在⼦控件中才有的属性)android:layout_weight=" "例1:没添加权重属性之前:1 <?xml version="1.0" encoding="utf-8"?>23 <!-- 指定布局⽅向的属相为:orientation,属性值:horizontal(横向)或vertical(纵向) -->4 <LinearLayout xmlns:android="/apk/res/android"5 android:layout_width="match_parent"6 android:layout_height="match_parent"7 android:orientation="horizontal" >89 <TextView10 android:id="@+id/textView1"11 android:layout_width="wrap_content"12 android:layout_height="wrap_content"13 android:text="TextView" />1415 <TextView16 android:id="@+id/textView2"17 android:layout_width="wrap_content"18 android:layout_height="wrap_content"19 android:text="TextView" />2021 <TextView22 android:id="@+id/textView3"23 android:layout_width="wrap_content"24 android:layout_height="wrap_content"25 android:text="TextView" />2627 </LinearLayout>添加权重属性 android:layout_weight=" " 之后1 <?xml version="1.0" encoding="utf-8"?>23 <!-- 指定布局⽅向的属相为:orientation,属性值:horizontal(横向)或vertical(纵向) -->4 <LinearLayout xmlns:android="/apk/res/android"5 android:layout_width="match_parent"6 android:layout_height="match_parent"7 android:orientation="horizontal" >89 <TextView10 android:id="@+id/textView1"11 android:layout_width="wrap_content"12 android:layout_height="wrap_content"13 android:layout_weight="1"14 android:text="TextView" />1516 <TextView17 android:id="@+id/textView2"18 android:layout_width="wrap_content"19 android:layout_height="wrap_content"20 android:layout_weight="1"21 android:text="TextView" />2223 <TextView24 android:id="@+id/textView3"25 android:layout_width="wrap_content"26 android:layout_height="wrap_content"27 android:layout_weight="1"28 android:text="TextView" />2930 </LinearLayout>纵向布局同理。
Android五大布局Demo
android五大布局Demo截图:最初的界面包含了一个ListView,上面有6个点击LinearLyaout后可以看到item,点击可看到每个item所对应的布局。
LinearLayout相关的布局点击RelativeLayout后可以看点击FrameLayout后可以到RelativeLayout相关的布局看到FrameLayout相关的布局点击TableLayout 后可以看到 点击Grid View 后可以看到 TableLayout 相关的布局 Grid View 相关的布局点击TabLayout 后可以看到TabLayout 相关的布局部分代码及讲解ListView 以列表的形式展示具体内容。
可以用适配器来把数据映射到ListView 上,这里我在strings.xml 声明了一个名为layout_array 的数组。
用 android :entries=”@array/layout_array”将数据映射到ListView上。
利用适配器也可以把字符串映射在ListView上。
图片,或者基本组件也允许。
通过实现ListView的setOnItemClickListener方法,运用switch语句,对于不同的item,根据其下标位置来建立对应的线程,跳转到另一个activity。
在LinearLayout中,按照垂直或者水平的顺序依次排列组件,每一个子组件都位于前一个元素之后。
如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个组件,而不论这个组件的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。
但是这样排列并不会死板,仍然可以将屏幕布局为多行多列的格式,这时就需要层层嵌套。
代码布局如下,采用三层嵌套,先将ImageView和TextView竖直线性布局,形成一个小组合。
将两个小组合实现水平线性布局,形成一个大组合,再将两个大组合竖直线性布局,完成整体布局。
<LinearLayout><!--竖直线性布局--><LinearLayout><!--水平线性布局--><LinearLayout> <!--竖直线性布局--> <LinearLayout><ImageView/> <ImageView/><TextView/> <TextView/></LinearLayout> </LinearLayout></LinearLayout><LinearLayout><LinearLayout> <LinearLayout><ImageView/> <ImageView/><TextView/> <TextView/></LinearLayout> </LinearLayout></LinearLayout></LinearLayout>父视图剩余的空间分配给设置了layout_weight的组件,所以将每一层嵌套的布局属性layout_weight均设置为1,这样,处于同一层嵌套的即拥有相同的比重,这样就可以实现让每一对ImageView和Textview占有屏幕的四等分之一。
分享五种Android常用布局方式
分享五种Android常⽤布局⽅式现在Android⾮常疯狂,所以⽹上关于Android学习的资料如⾬后春笋般冒起来,像这些基础的东西更是多如⽜⽑,我会把⽤过的东西碰到的困难和怎么解决的记录下来,⼀来可以供⾃⼰复习万⼀以后⼜碰到类似的问题就可以直接拿来看下。
⼆来可以给初学者⼀点⼩⼩的帮助。
Android布局是应⽤界⾯开发的重要⼀环,在Android中,共有五种布局⽅式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)⼀、FrameLayout这个布局可以看成是墙脚堆东西,有⼀个四⽅的矩形的左上⾓墙脚,我们放了第⼀个东西,要再放⼀个,那就在放在原来放的位置的上⾯,这样依次的放,会盖住原来的东西。
这个布局⽐较简单,也只能放⼀点⽐较简单的东西。
⼆、LinearLayout线性布局,这个东西,从外框上可以理解为⼀个div,他⾸先是⼀个⼀个从上往下罗列在屏幕上。
每⼀个LinearLayout⾥⾯⼜可分为垂直布局(android:orientation="vertical")和⽔平布局(android:orientation="horizontal")。
当垂直布局时,每⼀⾏就只有⼀个元素,多个元素依次垂直往下;⽔平布局时,只有⼀⾏,每⼀个元素依次向右排列。
linearLayout中有⼀个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表⾏距;⽔平的时候代表列宽;weight值越⼤就越⼤。
三、AbsoluteLayout绝对布局犹如div指定了absolute属性,⽤X,Y坐标来指定元素的位置android:layout_x="20px"android:layout_y="12px" 这种布局⽅式也⽐较简单,但是在垂直随便切换时,往往会出问题,⽽且多个元素的时候,计算⽐较⿇烦。
Android之四大组件、六大布局、五大存储总结
Android之四⼤组件、六⼤布局、五⼤存储总结Android之四⼤组件、六⼤布局、五⼤存储⼀.四⼤组件:四⼤组件分别为activity、service、content provider、broadcast receiver。
⼀、android四⼤组件详解1、activity(1)⼀个Activity通常就是⼀个单独的屏幕(窗⼝)。
(2)Activity之间通过Intent进⾏通信。
(3)android应⽤中每⼀个Activity都必须要在AndroidManifest.xml配置⽂件中声明,否则系统将不识别也不执⾏该Activity。
2、service(1)service⽤于在后台完成⽤户指定的操作。
service分为两种:(a)started(启动):当应⽤程序组件(如activity)调⽤startService()⽅法启动服务时,服务处于started状态。
(b)bound(绑定):当应⽤程序组件调⽤bindService()⽅法绑定到服务时,服务处于bound状态。
(2)startService()与bindService()区别:(a)started service(启动服务)是由其他组件调⽤startService()⽅法启动的,这导致服务的onStartCommand()⽅法被调⽤。
当服务是started 状态时,其⽣命周期与启动它的组件⽆关,并且可以在后台⽆限期运⾏,即使启动服务的组件已经被销毁。
因此,服务需要在完成任务后调⽤stopSelf()⽅法停⽌,或者由其他组件调⽤stopService()⽅法停⽌。
(b)使⽤bindService()⽅法启⽤服务,调⽤者与服务绑定在了⼀起,调⽤者⼀旦退出,服务也就终⽌,⼤有“不求同时⽣,必须同时死”的特点。
(3)开发⼈员需要在应⽤程序配置⽂件中声明全部的service,使⽤<service></service>标签。
Android开发的六种常用布局
Android开发的六种常⽤布局本⼈是Android⼩⽩,刚刚学习Android开发,通过观看教学视屏和书籍学习,总结下Android开发的⼩知识,⼤神勿喷!第⼀种:LinearLayout:线性布局 线性布局是按照处置或者⽔平进⾏排布的,默认是⽔平 属性:orientation:⽤来指定当前的线性布局的排布⽅向。
wrap_content:包裹内容 match_parent:匹配⽗类 margin:外边距 padding:内边距 gravity:便是控件的内部内容针对控件本⾝的对其⽅式 layout_gravity:表⽰该控件⾃⾝在⽗类布局中的对齐⽅式 注:如果线性布局排布⽅式为⽔平,那么layout_gravity在⽔平的⽅向上就不起作⽤,只能在垂直的⽅向上起作⽤ layout_weight:表⽰权重的概念,即该百分⽐的形式进⾏对齐⽅式 如果控件划分的区域为wrap_content,那么权重值越⼤,所占⽐例就会越⼤ 如果控件划分的区域为match_parent,那么权重值越⼤,所占⽐例就会越⼩思考:在⼀个页⾯中,有⼀个权重的控件和⼀个⽆权重的控件,系统会先给谁分配空间尼? 答:系统肯定先给⽆权重的控件分配空间,才会得到需要百分⽐的空间⼤来进⾏百分⽐的划分。
1<?xml version="1.0" encoding="utf-8"?>2<LinearLayout xmlns:android="/apk/res/android"3 xmlns:tools="/tools"4 android:layout_width="match_parent"5 android:layout_height="match_parent"6 android:orientation="vertical"7>89<Button10android:layout_width="match_parent"11 android:layout_height="wrap_content"12 android:paddingTop="20dp"13 android:paddingBottom="20dp"14 android:layout_marginTop="20dp"15 android:layout_marginBottom="20dp"16 android:text="Button1"/>1718<Button19android:layout_width="wrap_content"20 android:layout_height="wrap_content"21 android:paddingTop="20dp"22 android:paddingBottom="20dp"23 android:paddingLeft="30dp"24 android:paddingRight="30dp"25 android:layout_gravity="center"26 android:text="Button2"/>2728</LinearLayout>第⼆种:RelativeLayout:绝对布局按照空间之间的相对位置进⾏排布,存在⼀个参照物的概念。
基础五
中博软件学院——基础五1:请介绍下Android中常用的五种布局答案:Android中常用的五种布局分别是:FrameLayout(框架布局)、LinearLayout(线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。
二、LinearLayout:线性布局,每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。
当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。
三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。
四、RelativeLayout:相对布局可以理解为某一个元素为参照物,来定位的布局方式。
主要属性有:相对于某一个元素android:layout_below、android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh。
五、TableLayout:表格布局,每一个TableLayout里面有表格行T ableRow,TableRow 里面可以具体定义每一个元素。
2:请描述下Activity的生命周期答案:Acitvity的生命周期与activity的活动状态密切相关,也和activity的周期函数密切相关,共有七个周期函数:onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy()完整生命周期:即一个activity从出现到消失,对应的周期方法是从onCreate()到onDestroy();onCreate()方法在创建activity时调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android中常用的5大布局 (2)线性布局 (2)帧布局 (7)表格布局 (8)相对布局 (9)绝对布局 (12)Android中常用的5大布局线性布局(LinearLayout):按照垂直或者水平方向布局的组件。
帧布局(FrameLayout):组件从屏幕左上方布局组件。
表格布局(TableLayout):按照行列方式布局组件。
相对布局(RelativeLayout):相对其它组件的布局方式。
绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。
线性布局线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。
属性值有垂直(vertical)和水平(horizontal)两种。
常用的属性:horizontal属性作用值意义android:orientation:可以设置布局的方向vertical 垂直布局horizontal 水平布局(默认)android:gravity: 用来控制组件的对齐方式right 右对齐layout_weight:控制各个组件在布局中的相对大小android:layout_weight="1"默认为0 值越大,布局越大占的比例就越大wrap_content: 根据容器内的东西决定组件的大小wrapmatch_parent: match 指“填充满”父容器fill_parent: fill 真的填满,没有条件注意:match的话是指“填充满”父容器。
但是他跟fill_parent是不一样的,fill是真的填满,没有条件。
而match的话有自动调整的功能。
第一个实例①效果图:②核心代码如下:main.xml1<?xml version="1.0"encoding="utf-8"?>2<LinearLayoutxmlns:android="/apk/res/android"3android:orientation="vertical"4android:layout_width="fill_parent"5android:layout_height="fill_parent"6>7<LinearLayout8android:layout_width="fill_parent"9android:layout_height="wrap_content"10android:orientation="vertical"11>12<EditText13android:layout_width="fill_parent"14android:layout_height="wrap_content"15/>16</LinearLayout>17<LinearLayout18android:layout_width="fill_parent"19android:layout_height="wrap_content"20android:orientation="horizontal"21android:gravity="right"22>23<!-- android:gravity="right"表示Button组件向右对齐 --> 24<Button25android:layout_height="wrap_content"26android:layout_width="wrap_content"27android:text="确定"28/>29<Button30android:layout_height="wrap_content"31android:layout_width="wrap_content"33/>34</LinearLayout>35</LinearLayout>第二个实例①效果图:②核心代码:mian.xml1<?xml version="1.0"encoding="utf-8"?>2<LinearLayout xmlns:android="/apk/res/android"3android:orientation="vertical"android:layout_width="fill_parent"4android:layout_height="fill_parent">56<LinearLayout7android:orientation="horizontal"8android:layout_width="fill_parent"9android:layout_height="fill_parent"1112<TextView13android:text="red"14android:gravity="center_horizontal"15android:background="#aa0000"16android:layout_width="wrap_content"17android:layout_height="fill_parent"18android:layout_weight="1"19/>20<!--android:gravity="center_horizontal"水平居中-->21<!--layout_weight属性以控制各个控件在布局中的相对大小。
layout_weight属性是一个非负整数值。
22线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。
23例如,在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,24那么这两个按钮都会被拉伸到整个屏幕宽度的一半。
如果layout_weight指为0,控件会按原大小显示,不会被拉伸;25对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,26再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度-->27<TextView28android:text="Teal"29android:gravity="center_horizontal"30android:background="#008080"31android:layout_width="wrap_content"32android:layout_height="fill_parent"33android:layout_weight="1"/>3435<TextView36android:text="blue"37android:gravity="center_horizontal"38android:background="#0000aa"39android:layout_width="wrap_content"40android:layout_height="fill_parent"41android:layout_weight="1"42/>4344<TextView45android:text="orange"46android:gravity="center_horizontal"47android:background="#FFA500"48android:layout_width="wrap_content"49android:layout_height="fill_parent" 50android:layout_weight="1"51/>5253</LinearLayout>54<LinearLayout55android:orientation="vertical"56android:layout_width="fill_parent"57android:layout_height="fill_parent" 58android:layout_weight="1">5960<TextView61android:text="row one"62android:textSize="15pt"63android:background="#aa0000"64android:layout_width="fill_parent"65android:layout_height="wrap_content" 66android:layout_weight="1"67/>68<!-- -->69<TextView70android:text="row two"71android:textSize="15pt"72android:background="#DDA0DD" 73android:layout_width="fill_parent"74android:layout_height="wrap_content" 75android:layout_weight="1"76/>7778<TextView79android:text="row three"80android:textSize="15pt"81android:background="#008080"82android:layout_width="fill_parent"83android:layout_height="wrap_content" 84android:layout_weight="1"85/>86<TextView87android:text="row four"88android:textSize="15pt"89android:background="#FFA500"90android:layout_width="fill_parent"91android:layout_height="wrap_content" 92android:layout_weight="1"93/>94</LinearLayout>95</LinearLayout>帧布局帧布局是从屏幕的左上角(0,0)坐标开始布局,多个组件层叠排列,第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。