第三周

一、自定义控件


1.px、dp和sp的关系

px:像素点,在web前段会用得比较多,但是对于移动端尽量少用,因为手机的分辨率是不同的;

dp:跟像素密度有关,因为密度的不同会导致相同的px,而dp不同的情况;

sp:和dp类似,但是是用来修饰文字的;

2.Inflater的基本知识

对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;而对于一个已经加载了的界面,就可以使用Activity.findViewById()来获得其中的界面元素。

LayoutInflater是一个抽象类,public abstract class LayoutInflater extends Objects;

获得LayouInflater的三种方式:

1)LayoutInflater inflater = getLayoutInflater();

2)LayoutInflater localinflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

3.)LayoutInflater inflater = LayoutInflater.from(context);

我们主要使用的还是第二种方式,因为三种方式中归根结底,都是来自第二种。

3.View的工作过程

自定义控件的流程一般是按照下面的方法进行的:

1)自定义view的属性,创建attrs.xml,创建自己想要的属性;

2)在view的构造方法中获取我们自定义的控件;

3)重写onMesure(),以确定大小;

4)重写onLayout(),以确定位置;

5)重写onDraw(),以绘制图形;

6)invalidate,刷新。

自定义控件的三种方式:

通过继承已有的控件来自定义控件

通过继承一个布局文件来实现自定义控件

通过继承View类来实现自定义控件

二、Fragment的学习


1.什么是fragment?

Fragment是Activity中的一部分

多个Fragment可以组合到一个Activity中

多个Activity可以重用一个Fragment

总结:Fragment相当于模块化的一段activity,具有自己的生命周期,接受自己的事件。可以在activity运行时被添加或删除

2.Fragment的生命周期

通过图表的方式表示:

第三周_第1张图片

在上面的流程图中,有很多地方和Activity的生命周期较为类似,但是也有很多不同之处。其中比较重要的是onCreateView。

三、Handler的学习


1.多线程和异步

多线程是指从软件或者硬件上实现多个线程并发执行的技术,一个进程中有多个任务,每个任务就是一个线程,当一起执行的时候就需要异步执行。

2.Handler的基本概念

Handler的主要作用是用来处理异步的消息,可以用来传递Message和Runnable的对象

3.Looper

消息泵,是消息队列(Message queue)的管理者,每一个looper对象和一个线程关联,looper负责取出消息,然后交给Handler处理。

4.Message

Message的主要方法如下:

obtainMessage()取得消息

sendMessage() 发送

handlerMessage() 处理消息

你可能感兴趣的:(第三周)