布局管理器是指定View之间的排列方式的。view就是UI控件,下节课我会整理到,这里咱们先讲布局,大布局在我看来就至关于一个房间,让view显示,就是说物品在房间的摆放规则。ide
1、View的简介布局
View ,通常都有TextView,EditText,Button,RadioButton,CheckBox,ImageView,ImageButton。google
ViewGroup,通常有LinearLayout,RelativeLayout,FrameLayout,Spinner,ListView,GridView。spa
每个View在布局中都有对应的标签,好比说TextView,它的标签就是<TextView>orm
布局与Activity的关系:布局只能在Activity或Dialog中加载和显示,就如MainActivity中onCreate()方法中的:setContentView(R.Layout.布局名),这个是加载布局。it
在Activity中怎么访问和修改View控件的属性:先要在布局中找到,相对应的控件的ID,好比TextView的Id是tv,那么定义一个全局变量private TextView textView;在onCreate()方法中:textView=findViewById(R.id.tv);tv.setXXX()来进行相关属性的设置。io
通常经常使用的属性是:id,layout_width,layout_height,background。class
通常常有的与属性对应的方法:setText(String),setTextSize(float),setTextColor(int),setSingleLine(boolean),setLines(int),setMaxLines(int),setAutoLinkMask(int)。变量
其中setAutoLinkMask() List
textView.setAutoLinkMask(Linkify.WEB_URLS);// 当文本内容中包含超连接格式的文本时,自动转换成超连接样式,点击会自动跳转到指定的网页
textView.setAutoLinkMask(Linkify.PHONE_NUMBERS);//自动转手机号码点击它可进入系统拨号界面
textView.setAutoLinkMask(Linkify.EMAIL_ADDRESSES);//自动转邮件地址点击它可发送邮件(要提早设置好本身的电子邮件)
textView.setAutoLinkMask(Linkify.MAP_ADDRESSES);//自动转街道地址点击它可查看位置(前提已安装了google地图)
textView.setAutoLinkMask(Linkify.ALL);//包括上面4种状况
2、布局管理器
布局管理器一共有5种,分别是:
线性布局:LinearLayout.
相对布局:RelativeLayout.
表格布局:TableLayout.
绝对布局:AbsoluteLayout(已废弃).
帧布局:FrameLayout
一、LinearLayout
(1)在线性布局中注意的属性是:orientation="horizontal|vertical",超过一个view的时候没有这个属性会报错。
(2)第二个须要注意的是weight的使用:
控件的width/height的属性必须保持一致;
width/height="0dp" 权重值越大,所占空间越大(正比例);
width/height="match_parent" 权重值越大,所占空间越小 (反比例);
width/height="wrap_content" 权重值越大,所占空间越大(正比例);
width/height不为“0dp“时,系统会优先考虑权重值小的组件,暂时不会放入代码,请你们见谅。
(3)gravity是控件内容及子控件的对齐方式,具体的属性按快捷键都会出来,这里就不一一介绍了。
(4)layout_gravity是控件在父布局中的对齐方式。
二、RelativeLayout相对布局
这个属性分为两大部分,一个是相对兄弟控件的,一个是相对父控件的。
(1)相对兄弟控件:
放置位置:
toLeftOf在指定的兄弟控件的左边位置
toRightOf在指定的兄弟控件的右边位置
below在指定的兄弟控件下边位置
above在指定的兄弟控件上边位置
对齐方式:
alignLeft与指定的兄弟控件左对齐
alignRight与指定的兄弟控件右对齐
alignTop与指定的兄弟控件顶部对齐
alignBottom与指定的兄弟控件底部对齐
alignBaseLine与指定的兄弟控件内容对齐
(2)相对父控件:
位置对齐:
alignParentLeft放置在父控件的左边(默认是这种放置)
alignParentRight放置在父控件的右边
alignParentTop放置在父控件的顶部
alignParentBottom放置在父控件的底部
居中对齐:
centerInParent放置在父控件的居中位置
centerHorizontal放置在父控件的水平居中位置
centerVertical放置在父控件的垂直居中位置
三、FrameLayout帧布局
layout_gravity 设置子控件位置的
foreground=“#4f00”设置绘制在全部子控件之上的drawable
foregroundGravity设置绘制在全部子控件之上的drawable的gravity属性
measureAllChildren计算全部子控件的大小
关于布局这块,基本上经常使用的就是线性布局和相对布局,你们把这两部分必定要掌握清晰。欢迎转载