美文网首页
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-30

    2018-08-29 张shilian 2018-08-29 22:22 · 字数 333 · 阅读 1 · 日记...

  • 2018-08-30

    2018-08-29 c6_李晓红Dorothy 2018-08-29 07:12 · 字数 265 · 阅读 1...

  • 2018-08-29

    戴师傅 2018-08-29 2018-08-29 20:32 打开App (稻盛哲学学习会)打卡第125天 姓名...

  • (ACM)Bitcoin's Academic Pedi

    2018-08-29 Bitcoin's Academic Pedigree | ACM杂志 2017 Vol-1...

  • 【置顶】技术研发视频分享汇总

    Android 2018-08-29更新 Android架构技术 2018-08-28 更新 Android核心技...

  • 2018-08-29

    2018-08-28 张shilian 2018-08-29 22:28 · 字数 388 · 阅读 1 · 日记...

  • Hexo博客添加在线联系功能

    title: Hexo博客添加在线联系功能date: 2018-08-29 21:03:11tags:- 博客- ...

  • 非典型生意指标

    发表于2018-08-29[http://ibochina.com/archives/1542] 非典型生意指标[...

  • 2018-08-29

    2018-08-29 万千工品金秀 2018-08-28 22:22 · 字数 376 · 阅读 4 · 日记本 ...

  • 2018-08-30

    2018-08-30 万千工品金秀 2018-08-29 21:16 · 字数 464 · 阅读 2 · 日记本 ...

网友评论

      本文标题:2018-08-29

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