1. Androidq启动流程
系统运行程序时,首先会去访问
AndroidMainfest.xml
文件,文件内配置了应用程序所使用的所有组件,决定启动的activity,然后生成一个MainActivity
对象,调用里面的oncreate()
方法,oncreate()
方法会去调用activity_main.xml
,此文件配置了页面的布局方式,以此确定activity的显示内容。
2. View
View类是所有控件类的父类,通常使用它的子类,每个组件都有自己对应的类,可以用
findViewById
找到他们,但是此方法返回的是View类型,需要向下转型
组件属性
I. id——唯一标识
android:id = "@+id/user"
—— user为指定的id
II. background——背景(图或者颜色)
android:background = "@mipmap/bg"
—— 存在指定目录下的图
android:background = "#FF6600"
—— 16进制RGB值
III. padding——内边距
android:padding = "16dp"
—— 用dp作为单位
android:padding = "@dimen/activity_margin"
—— activity_margin是尺寸资源变量,需自定义
IV. margin——外边距
android:margin = "16dp"
—— 用dp作为单位
android:margin = "@dimen/activity_margin"
—— activity_margin是尺寸资源变量,需自定义
- 直接设置padding或者margin则定义了各个方位属性值一致,也可以设置单一方位,如上图,此外,paddingStart是和paddingLeft对应的,paddingEnd是和paddingRight对应的
3. ViewGroup
控制View如何摆放, 继承自View嘞,扩展View的功能用作容纳其他组件的容器
ViewGroup控制其子组件分布时依赖的内部类
I. ViewGroup.LayoutParams
用作控制布局的高度和宽度
android:layout:layout-height/width=
- 后面的值可以跟具体的数值也可以使用系统定义的常量:
- FILL_PARENT:匹配父容器,和父容器相同
- MATCH_PARENT :匹配父容器,和父容器相同
- WRAP_CONTENT:包裹自身内容,根据自身内容确定
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/bg"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.mingrisoft.MainActivity" >
</FrameLayout>
II. ViewGroup.MarginLayoutParams
image.png控制子组件外边距
- 属性值和padding一致,值或者变量
- 使用layout_marginStart等量词时,对系统最低版本有要求,sdk>api17
- View和ViewGroup可以相互嵌套
网友评论