面试面试

Android面试题集(三)

2022-03-03  本文已影响0人  搬码人
image.png

自定义View

自定义View的基本方法

自定义View的最基本的三个方法分别是:onMeasure(),onLayout()、onDraw();View在Activity中显示出来,要经历测量、布局、绘制三个步骤,分别对应三个动作:measure、layout和draw。

自定义控件分类

View的分类

视图View主要分为两类

类别 解释 特点
单一视图 即一个View,如TextView 不包含子View
视图组 即多个View组成的ViewGroup,如LinearLayout 包含子View

View类简介

Android中的UI组件都由View、ViewGroup组成

AttributeSet与自定义属性

系统自带的View可以在xml中配置属性,对于写的好的自定义View同样可以在xml中配置属性,为了使自定义的View的属性可以在xml中配置,需要以下4个步骤:
1、通过<declare-styleable>为自定义View添加属性
2、在xml中为相应的属性声明属性值
3、在运行时(一般为构造函数)获取属性值
4、将获取到的属性值应用到View

Android坐标系

Android的坐标系定义为:

位置获取方式

get():触摸点相对于其所在的组件坐标系的坐标
event.getX();
event.getY();
getRaw():触摸点相对于屏幕默认坐标系的坐标
event.getRawX();
event.getRawY();

MeasureSpec

测量规格,封装了父容器对View的布局上的限制,内部提供了宽高的信息(SpecMode、SpecSize),SpecSize是指在某种SpecMode下的参考尺寸,其中SpecMode有如下三种:

MeasureSpec的意义

通过将SpecMode和SpecSize打包成一个int值可以避免过多的对象内存分配,为了方便操作,其提供了打包/解包方法。

MeasureSpec值的确定

MeasureSpec值到底是如何计算得来的呢?


image.png

子View的MeasureSpec值是根据子View的布局参数(LayoutParams)和父容器的MeasureSpec值计算得来的,具体计算逻辑封装在getChildMeasureSpec()里


查找算法你用过哪些?

什么是IntentService

IntentService可以执行大量的耗时操作?

Service和IntentService的区别联系

你了解Lifecycles吗?

官方解释:用于管理Activity和Fragment的生命周期
其实Lifecycles的功能就是使业务组件能够感知Activity和Fragment的生命周期。

什么是databinding?

ListView和RecyclerView有什么区别?

上一篇下一篇

猜你喜欢

热点阅读