![《Android实战基础教程》课件第二章_第1页](http://file4.renrendoc.com/view12/M01/0D/01/wKhkGWdf86KAXrUrAAClx4xg5LA718.jpg)
![《Android实战基础教程》课件第二章_第2页](http://file4.renrendoc.com/view12/M01/0D/01/wKhkGWdf86KAXrUrAAClx4xg5LA7182.jpg)
![《Android实战基础教程》课件第二章_第3页](http://file4.renrendoc.com/view12/M01/0D/01/wKhkGWdf86KAXrUrAAClx4xg5LA7183.jpg)
![《Android实战基础教程》课件第二章_第4页](http://file4.renrendoc.com/view12/M01/0D/01/wKhkGWdf86KAXrUrAAClx4xg5LA7184.jpg)
![《Android实战基础教程》课件第二章_第5页](http://file4.renrendoc.com/view12/M01/0D/01/wKhkGWdf86KAXrUrAAClx4xg5LA7185.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录2.1线性布局2.2相对布局
2.3表格布局
2.4帧布局2.5Android常见显示单位布局二、布局
线性布局分为垂直线性布局和水平线性布局。LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽;而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widgets或者是containers之间的间隔以及对齐方式(相对一个控件的右对齐、中间对齐或者左对齐)。2.1线性布局二、布局
LinearLayout属性如下:android:orientation:定义布局的方向——水平或垂直。android:layout_weight:子元素对未占用空间【水平或垂直】分配权重值,其值越小,权重越大。android:layout_width:宽度(fill_parent:父元素决定,wrap_content:本身的内容决定)。android:layout_height:高度(直接指定一个px值)。android:gravity:内容的排列形式(常用
top,bottom,left,right,center)。二、布局
根据一个实例来了解线性布局。
新建项目MyLayout,在activity_main中添加4个按钮,代码如下:activity_main.xml文件:代码MainActivity文件:代码
启动模拟器,运行结果如图2.1所示。图2.1二、布局
RelativeLayout称为相对布局,可以通过相对的定位方式让控件出现在布局的任何位置。RelativeLayout的属性:Android:ignoregravity:设置哪个组件不受gravity属性的影响。
2.2相对布局二、布局1)属性值为具体像素值的属性android:layout_marginBottom:离某元素底边缘的距离。android:layout_marginLeft:离某元素左边缘的距离。android:layout_marginRight:离某元素右边缘的距离。android:layout_marginTop:离某元素上边缘的距离。二、布局2)属性值为true或是false的属性android:layout_alignParentBottom:控制该组件是否和布局管理器底端对齐。android:layout_alignParentLeft:控制该组件是否和布局管理器左边对齐。android:layout_alignParentRight:控制该组件是否和布局管理器右边对齐。android:layout_alignParentTop:控制该组件是否和布局管理器顶部对齐。二、布局
3)属性值为其他组件ID的属性android:layout_toLeftOf:本组件在某组件的左边。android:layout_toRightOf:本组件在某组件的右边。android:layout_above:本组件在某组件的上方。android:layout_below:本组件在某组件的下方。二、布局
以一个项目为例来讲述相对布局的属性。
创建项目MyRelativeLayout,修改activity_main.xml的代码(添加五个按钮控件)。activity_main.xml文件:代码
MainActivity文件:代码
运行模拟器,结果如图2.2所示。图2.2二、布局
表格布局(TableLayout)即排成行和列的布局。一个TableLayout由若干TableRow组成,TableRow定义了一行。TableLayout容器不显示行、列或单元格边框线。每行有零个或多个单元格,每个单元格可容纳一个视图对象。
列的宽度是由该列中最宽的单元格决定的,通过调用setcolumnshrinkable()或setcolumnstretchable(),一个TableLayout可以指定某些列为收缩或伸展的。2.3表格布局二、布局TableLayout的子类不能指定宽度属性,宽度总是match_parent。而layout_height属性可以通过它的子控件来设置,默认值是wrap_content。如果子控件是个TableRow,那么它的高度总是wrap_content。
必须将单元格添加到递增列顺序中,无论是在代码或XML中。默认列数为零。如果你不指定一个孩子单元格列数,它将自动递增到下一个可用的列。如果你跳过了一个列号,它就会被认为是一个空单元格。二、布局。属性名相关方法描
述android:collapseColumnssetColumnCollapsed(int,boolean)设置需要隐藏的列android:shrinkColumnssetShrinkAllColumns(boolean)设置允许收缩的列android:stretchColumnssetStretchAllColumns(boolean)设置允许拉伸的列表2.1表格布局的XML属性二、布局表格布局案例:布局文件:activity_main.xml文件:代码使用Activity显示该布局,得到如图2.3所示效果。图2.3二、布局
帧布局是指在屏幕的一块区域中显示单独的一个元素。帧布局是最简单的布局形式。所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件会覆盖下一层的控件。这种显示方式有些类似于堆栈。
2.4帧布局二、布局
当我们往帧布局中添加组件的时候,所有的组件都会放置于这块区域的左上角;帧布局的大小由子控件中最大的子控件决定;如果组件大小相同,同一时刻就只能看到最上面的那个组件。当然我们也可以为组件添加layout_gravity属性,从而制定组件的对齐方式。属性名相关方法描
述android:foregroundsetForeground(Drawable)设置前景图像android:foregroundGravitysetForegroundGravity(int)定义绘制前景图像的gravity属性android:measureAllChildrensetMeasureAllChildren(boolean)决定是否测量所有子类或只是那些在可见或不可见状态时测量表2.2帧布局的XML属性二、布局帧布局案例:布局文件:activity_main.xml文件:代码使用FrameLayout布局,得到如图2.4所示效果。图2.4二、布局1.像素px(pixels)px是像素的意思,即屏幕中可以显示的最小元素单位。Android应用程序中任何可见的图像都是由一个个像素点组成的。目前HVGA代表320×480像素。
一个组件的不同像素,在分辨率不同的手机上显示的效果是不同的。低分辨率的手机,图像看起来比较大;高分辨率手机,图像看起来比较小,用户体验不同。
2.5Android常见显示单位二、布局2.设备独立像素dip或dp(deviceindependentpixels)dip和设备硬件有关,不依赖像素。一般为了支持WVGA、HVGA和QVGA,推荐使用这种显示方式。
这里要特别注意,dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,如果屏幕分辨率很高,如480×800,但是屏幕密度没有正确设置,比如说还是160,那么此时凡是使用dip的都会显示异常,普遍表现为显示过小。dip的换算:dip(value)=(int)(px(value)/1.5+0.5)二、布局3.比例像素sp(scaledpixels—bestfortextsize)sp主要处理字体的大小,用于字体显示,可以根据系统的字体自适应。
除了上面三个显示单位,还有如下几种不太常用的显示单位:
in(inches)英寸
mm(millimeters)毫米
pt(points)点,1/72英寸另外根据google的推荐,像素统一使用dip,字体统一使用sp。二、布局<LinearLayoutxmlns:android="/apk/res/android" xmlns:tools="/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--按钮1--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button1" android:text="button1"/>二、布局 <!--按钮2--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button2" android:text="button2"/> <!--按钮3--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button3" android:text="button3"/>二、布局 <!--按钮4--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button4" android:text="button4"/></LinearLayout>back二、布局publicclassMainActivityextendsActivity{
@Override protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}}back二、布局<RelativeLayoutxmlns:android="/apk/res/android" xmlns:tools="/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <!--按钮1--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:id="@+id/button1" android:text="button1"/>二、布局 <!--按钮2--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button2" android:text="button2" android:layout_above="@+id/button1" android:layout_toLeftOf="@+id/button1"/>二、布局 <!--按钮3--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button3" android:text="button3" android:layout_below="@+id/button1" android:layout_toLeftOf="@+id/button1"/>二、布局 <!--按钮4--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button4" android:text="button4" android:layout_above="@+id/button1" android:layout_toRightOf="@+id/button1"/>二、布局 <!--按钮5--> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button5" android:text="button5" android:layout_below="@+id/button1" android:layout_toRightOf="@+id/button1"/></RelativeLayout>back二、布局publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}back二、布局<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">二、布局 <!--表格1-伸展--> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:shrinkColumns="0,1,2"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="一行"/> <TableRow>二、布局 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮1"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2"> </Button>二、布局
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2"> </Button> </TableRow> <TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮4"> </Button>二、布局 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:text="两列"> </Button> </TableRow> </TableLayout>二、布局 <!--表格2-收缩--> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="0,1"> <TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度化工产品国际贸易结算与支付合同
- 2025年度建筑基桩检测与抗震性能评估合同
- 2025年度酒水品鉴会组织服务合同
- 2025年度酒店客房智能化管理系统采购合同-@-1
- 2025年度绿色建筑认证施工资料承包合同范本
- 2025年度股权重组与委托持股协议书修订及实施合同
- 2025年度花椒产业技术创新与成果转化合同
- 2025年度大型地产开发项目渣土运输及生态保护合同
- 2025年度贷款利率调整补充协议标准范本
- 2025年度新能源汽车推广补贴资金担保合同
- 电镀产业园项目可行性研究报告(专业经典案例)
- 2025年鲁泰集团招聘170人高频重点提升(共500题)附带答案详解
- 2024-2025学年成都高新区七上数学期末考试试卷【含答案】
- 企业员工食堂管理制度框架
- 《辣椒主要病虫害》课件
- 2024年煤矿安全生产知识培训考试必答题库及答案(共190题)
- 《法律援助》课件
- 小儿肺炎治疗与护理
- SLT824-2024 水利工程建设项目文件收集与归档规范
- (完整word版)中国银行交易流水明细清单模版
- DB43∕T 859-2014 高速公路机电工程概预算编制办法及定额
评论
0/150
提交评论