美文网首页
2018-08-29

2018-08-29

作者: sunnyslxie | 来源:发表于2018-11-14 16:39 被阅读0次

    Android基础知识点整理

    一、Android六大布局

    1.1 LinearLayout线性布局

    android:orientation属性是LinearLayout中特有的属性,通过指定vertical可控制布局纵向排列,指定horizontal控制布局横向排列

    android:layout_weight指定子元素在LinearLayout中所占的权重

    1.2 RelativeLayout相对布局

    RelativeLayout里设为boolean的XML属性

    android:layout_centerHorizontal

    android:layout_centerVertical 

    android:layout_centerParent 

    android:layout_alignParentBottom 

    android:layout_alignParentLeft 

    android:layout_alignParentRight 

    android:layout_alignParentTop

    RelativeLayout.里属性值为其他组件ID的XML属性

    android:layout_toRightOf

    android:layout_toLeftOf 

    android:layout_above 

    android:layout_below 

    android:layout_alignTop 

    android:layout_alignBottom 

    android:layout_alignRight 

    android:layout_alignLeft

    1.3 FrameLayout帧布局

    FrameLayout直接继承自ViewGroup组件。帧布局为每个加入其中的组件创建一个空白的区域(称为一帧),每个子组件占据一帧,这些帧会根据gravity属性执行自动对齐。

    1.4 AbsoluteLayout绝对布局

    AbsoluteLayout由开发人员自己通过X坐标、Y坐标来控制组件的位置。每个组件都可指定如下两个XML属性:

    layour_x;

    layout_y;

    由于该模式,无法适配不同屏幕大小的机型,现已被淘汰

    1.5 TableLayout表格布局

    TableLayout继承自Linearout,本质上仍然是线性布局管理器。表格布局采用行、列的形式来管理UI组件,并不需要明确地声明包含多少行、多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。

    每向TableLayout中添加一个TableRow就代表一行;

    每向TableRow中添加一个一个子组件就表示一列;

    如果直接向TableLayout添加组件,那么该组件将直接占用一行;

    在表格布局中,可以为单元格设置如下三种行为方式:

           Shrinkable:该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度;

           Strentchable:该列所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间;

           Collapsed:如果该列被设置为Collapsed,那么该列的所有单元格会被隐藏;

    1.6 GridLayout网格布局

    GridLayout是Android4.0增加的网格布局控件,与之前的TableLayout有些相似,它把整个容器划分为rows ×columns个网格,每个网格可以放置一个组件。性能及功能都要比tablelayout好,比如GridLayout布局中的单元格可以跨越多行,而tablelayout则不行,此外,其渲染速度也比tablelayout要快。

    GridLayout提供了setRowCount(int)和setColumnCount(int)方法来控制该网格的行和列的数量

    二、Activity

    2.1.Activity生命周期

    通过activity的生命周期,我们可以将activity分为四种状态,分别为活动、暂停、停止、销毁

    ①activity启动

    onCreate ——> onStart ——> onResume

    ②activity暂停

    按下home键,执行onPause ——> onStop

    ③点击home键回到程序界面

    onRestart ——> onStart ——> onResume

    ④退出当前Activity

    onPause ——> onStop ——> onDestory

    2.2 Activity启动模式

    首先明确任务栈的概念,开启一个activity就叫进栈,关闭一个activity就叫出栈;用户操作的activity永远位于栈顶,程序一旦退出了任务栈也就被清空了,一般来说一个应用程序对应一个任务栈。

    ①standard

    activity默认启动模式,每启动一个activity就会创建一个新的实例。

    应用场景:闹钟

    ②singleTop

    栈顶复用模式,首先检查任务栈的栈顶,要创建的activity在栈顶已经存在的话,则直接复用,否则依然会重新创建。

    应用场景:浏览器的书签

    ③singleTask

    栈内复用模式,首先检查任务栈内是否有实例存在,如果存在该实例,就把这个activity上面的所有别的activity实例都清空掉,再复用这个已经存在的实例

    应用场景:浏览器

    ④singleInstance

    单一实例,每一个activity都独享一个任务栈,系统会自动创建一个任务栈。

    应用场景:来电页面

    三、Service

    service是Android后台组件,和activity一样有自己的生命周期,没有用户界面;Android中分为两种service:Service以及IntentService,并且service有两种启动模式,不同启动模式,其生命周期也不相同。

    3.1 IntentService特征

    ①IntentService会创建一个单独的worker线程来处理所有的intent请求

    ②IntentService只需要实现onHandIntent()方法

    ③当所有的请求处理完成后,IntentService会自动停止

    3.2 Service

    3.2.1 启动方式

    ①startService启动service

    访问者与Service没有关联,访问者退出了,Service仍然在后台运行,可通过调用stopSelf()来停止服务,或者是调用stopService来停止服务,且这种方式无法进行通信以及交换数据

    生命周期为:onCreate() ——>onstartCommand()——>onDestory()

    ②IntentService启动service

    访问者与service绑定在一起,当访问者被销毁时,服务也会被销毁;方便访问者与Service之间进行通信和交换数据

    生命周期为:onCreate()——>onBind()——>onUnbind()——>onDestory()

    四、BroadcastReceiver

    BroadcastReceiver本质上是一个全局的监听器,用于监听全局的广播消息,可以很方便的实现不同组件间的通信

    启动方式sendBroadcast(),可静态注册(在清单文件中)、动态注册(代码)

    五、ContentProvider

    ContentProvider将数据进行封装,其他应用可通过内容解析者(ContentResolver)来访问。

    实现步骤:

    ①定义一个类实现ContentProvider

    ②在清单文件中进行配置,加入authorities属性

    ③定义路径匹配器UriMactcher

    ④写一个静态代码块,添加匹配规则

    ⑤暴露方法(增删改查)

    六、fragment

    fragment即碎片,它必须依附于activity而存在,其生命周期受activity所影响,可通过静态加载(在布局中加载)、动态加载(代码实现)到相应的activity上,一个activity里面可以包含多个fragment,一个fragment也可以被多个activity重用。

    6.1 fragment加载方式

    6.1.1 静态加载

    在需要加载该fragment的activity的布局文件中通过上述方式加载.

    6.1.2 动态加载

    七. 动画

    7.1 View Animation

    View Animation也叫做Tween,补间动画,可进行缩放,位移,旋转,透明等变换.

    7.2 Drawable Animation

    Drawable Animation也叫Frame,帧动画.

    7.3 Property Animation

    Property Animation 也叫做属性动画,其原理是修改控件的属性值来实现的动画.

    相关文章

      网友评论

          本文标题:2018-08-29

          本文链接:https://www.haomeiwen.com/subject/lzfhwftx.html