版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章界面布局回顾Activity的生命周期分成那几种状态?如果只有一个普通的activity的应用程序运行了,显示主activity后用户点击了home键,请问分别会执行该主activity中的那些方法?Android操作系统中对Activity的管理是采用什么方式进行的?目标掌握用户界面布局实现掌握LinearLayout、TableLayout、RelativeLayout、FrameLayout布局边距和刻度布局的基本术语边距刻度边距Padding组件内容相对的边缘的距离Margin组件边缘相对其他组件边缘的距离色彩颜色的原理(FF0000FF)电脑中表示色彩的方式(RGB)(FF99FF)Android表示色彩的原理(Alphaopacity)安全色Android中的显示单位px(pixels)像素
一般HVGA代表320x480像素,这个用的比较多。dip或dp(deviceindependentpixels)设备独立像素
这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA推荐使用这个,不依赖像素。sp(scaledpixels—bestfortextsize)比例像素
主要处理字体的大小,可以根据系统的字体自适应。除了上面三个显示单位,下面还有几个不太常用:in(inches)英寸mm(millimeters)毫米pt(points)点,1/72英寸为了适应不同分辨率,不同的像素密度,推荐使用dip,文字使用sp。刻度px(Pixels,像素):对应屏幕上面的实际像素点in(Inches,英寸):屏幕的物理长度单位mm(Millimeters,毫米):屏幕的物理长度单位pt(Points,磅):屏幕的物理长度单位,1/72英寸刻度dp/dip(deviceindependentpixels,设备独立像素):与密度无关,逻辑长度单位sp(scaledpixels,与刻度无关的像素):与dp类似,主要用于字体显示在160dpi的屏幕上1dp=1px=1/160英寸30px的图片160dpi320dpi的表现?刻度对于UI布局,建议使用dip或者dp作为单位。对于字体建议使用sp作为单位,要尽量少使用px作为单位。用户界面结构层次关系UI组件树ViewGroup是枝干,加载管理节点View是叶子,具体控件定义用户界面样式定义用户界面布局有两种方式:通过XML样式文件声明界面布局使用代码动态创建UI组件设置组件属性和布局定义用户界面样式通过XML样式文件声明界面布局通过XML定义界面样式setContentView()方法Activity通过该方法加载样式布局对象XML布局文件@OverrideprotectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ...}Layout样式文件图形界面修改样式文件通过可视化工具设计样式代码编辑样式文件通过代码设计样式界面布局共有属性background
属性设置整个布局画面的背景layout_gravityLayout中view的停靠位置。例如:居中、靠左等gravitylayout_width/layout_height
属性Layout中view的宽度和高度界面布局共有属性fill_parent与match_parent一样2.2View组件会填充父节点wrap_contentView组件会调整自身尺寸来满足它包含的内容界面布局共有属性layout_marginLeft
、layout_marginRight
、layout_Top
、layout_marginBottom设置Layout中的view,期望它能够和Layout的边界或者其他view之间保存的边距LinearLayout布局线性布局将包含的所有控件按照水平或垂直方向依序排列成线orientation属性HORIZONTAL水平排列VERTICAL垂直排列LinearLayout布局属性padding属性设置子元素与布局边缘之间的空白gravity属性子元素在布局中的缺省看齐方式获得焦点特点:各个子元素彼此连接,中间不留空白LinearLayout子元素属性layout_gravity属性设置自身对象在父布局中的看齐方式,可以更新父布局对象gravity属性给出的缺省属性layout_weight属性将父布局中剩余的尺寸按各兄弟元素的weight值比例进行填充。与“wrap_content”配合使用即可layout_margin属性设置自身对象边缘与父布局的边缘之间的空白定义用户界面样式使用代码动态创建UI组件设置组件属性和布局代码动态创建UI组件@OverrideprotectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//定义按钮组件Buttonbtn=newButton(this);btn.setText("Button1");Buttonbtn2=newButton(this);btn2.setText("Button2");
//定义LinearLayout布局组件,并加按钮添加到布局组件中LinearLayoutlayout=newLinearLayout(this);layout.setOrientation(LinearLayout.VERTICAL);
//设置垂直布局layout.addView(btn);layout.addView(btn2);
this.setContentView(layout);
//加载样式布局对象}代码动态设置布局样式@OverrideprotectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
...//通过LayoutParams类来设置样式属性layout.setLayoutParams(newLayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
LayoutParamsbtnParam=newLayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);btnParam.weight=25;btn1.setLayoutParams(btnParam);...}布局TableLayout布局表格布局向表格那样以行列的形式管理子viewlayout_colum属性设置控件在TableRow中所处的列layout_span属性设置控件所跨越的列数TableLayout布局collapseColumns属性将TableLayout里指定的列隐藏。若有多列需要隐藏,则用逗号将需要隐藏的序列号隔开stretchColumn属性设置指定的列可伸展。若有多列,则用逗号隔开shrinkCoulmns属性设置指定的列可收缩。若有多列,则用逗号隔开RelativeLayout布局相对布局子控件会根据它们所设置的参照控件和参数进行相对布局。参照可以是父控件也可以是其他子控件。RelativeLayout布局相对于父控件的布局属性(对齐设置)layout_alignParentTop,将该控件的顶部与其父控件的顶部对齐;layout_alignParentBottom,将该控件的底部与其父控件的底部对齐;layout_alignParentLeft,将该控件的左部与其父控件的左部对齐;layout_alignParentRight,将该控件的右部与其父控件的右部对齐;RelativeLayout布局相对于父控件的布局属性(居中设置)layout_centerHorizontal,将该控件的置于水平居中;layout_centerVertical,将该控件的置于垂直居中;layout_centerInParent,将该控件的置于父控件的中央;RelativeLayout布局相对于给定ID控件的布局属性layout_above将该控件的底部置于给定ID的控件之上;layout_below将该控件的底部置于给定ID的控件之下;layout_toLeftOf将该控件的右边缘与给定ID的控件左边缘对齐;layout_toRightOf将该控件的左边缘与给定ID的控件右边缘对齐;RelativeLayout布局相对于给定ID控件的布局属性layout_alignBaseline将该控件的baseline与给定ID的baseline对齐;layout_alignTop顶部边缘对齐;layout_alignBottom底部边缘对齐;layout_alignLeft左边缘对齐;layout_alignRight右边缘对齐;RelativeLayout布局通过ID属性设置参照控件<Buttonandroid:id="@+id/ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5px"android:text="OK"/><Buttonandroid:id="@+id/cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toLeftOf="@id/ok“android:layout_alignTop="@id/ok"android:text="Cancel"/>FrameLayout布局框架布局布局中的所有视图都以层叠方式显示。第一个添加视图放置最底层,最后一个添加的视图放置最上层,上一层的视图会覆盖下一层视图。FrameLayout布局布局中的组件会层层叠加AbsoluteLayout
布局绝对布局布局中的子元素需要指定准确的x/y坐标值,来显示在屏幕上。不推荐使用AbsoluteLayout,除非你有正当理由要使用它,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。
AbsoluteLayout
布局绝对布局布局中的子元素需要指定准确的x/y坐标值,来显示在屏幕上。不推荐使用AbsoluteLayout,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。
AbsoluteLayout布局通过layout_x和layout_y设置坐标位置<AbsoluteLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:layout_x="250px"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课件护理评估
- 护理培训评估方法
- 钻井柴油机工复测知识考核试卷含答案
- 塑料制品烧结工创新应用考核试卷含答案
- 玻璃钢制品工操作知识考核试卷含答案
- 聚丙烯酰胺装置操作工风险识别考核试卷含答案
- 服装裁剪工安全操作知识考核试卷含答案
- 报刊业务员安全实践模拟考核试卷含答案
- 2026年新科教版初中七年级语文上册第一单元记叙文写作技巧训练卷含答案
- 电冰箱装配工安全实践知识考核试卷含答案
- 记背手册04高考文言文知识清单(古今异义+通假字+固定句式)备战2025年高考语文一轮复习专题讲义(北京专用)
- 《时代广场的蟋蟀》课件
- 国开《数字电子电路》形考作业1-3答案
- 魔法森林的奇幻之旅童话故事5篇
- 供应商管理标准作业程序
- 施工安全风险分级管控和隐患排查治理监理工
- 代办开发资质合同范本
- 2025年采编资格证考试题库及答案
- 江苏省2025年中考数学试卷七套附真题答案
- 中国联通山西地区2025秋招面试典型题目及答案
- 新版中华民族共同体概论课件第十一讲中华一家与中华民族格局底定(清前中期)-2025年版
评论
0/150
提交评论