Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > Android自定义View控件

Android实现自定义View控件的流程详解

作者:沐小琪吖

这篇文章主要为大家详细介绍了Android中实现自定义View控件的流程,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下

官方自定义控件流程

根据Android Developers官网的介绍,自定义控件需要以下步骤。(根据业务需要,某些步骤可省略)

1、创建View

2、处理View的布局

3、绘制View

4、与用户进行交互

5、优化已定义的View

上面五项就是Android官方给出的自定义控件步骤。

每个步骤里面又包括了很多细小的知识点。可以记住这五个点,并且了解每个点里包含的小知识点。再加上一些自定义控件的练习。将这些知识熟练于心,相信开发者都能够定义出优秀的自定义控件。接下来对上面列出的5个要点进行细化阐述。

创建View

1.继承View

自定义的View是继承于View,当然如要自定义的View拥有某些Android已经提供的控件功能,可直接继承于已经提供的控件。

2.重写构造方法

3.定义自定义属性

自定义属性通常写在res/values/attrs.xml文件中。声明自定义属性,都属于styleable,一般styleable的name和自定义控件的类名一样。

4.获取自定义属性

测量View(Measure)

1.测量

一个View在展示时是有宽和高,测量View就是为了能够让自定义的控件能够根据各种不同的情况以合适的宽高去展示。测量就必须要提到onMeasure方法。onMeasure方法是一个view确定宽高的地方。

2.重写onMeasure的固定伪代码写法:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int measureWidth = measure(widthMeasureSpec, true);
    int measureHeight = measure(heightMeasureSpec, false);
    setMeasuredDimension(measureWidth, measureHeight);
}

计算出height和width之后在onMeasure中要调用setMeasuredDimension()方法。否则会出现运行时异常。

3.计算一些自定义控件需要的值 onSizeChange()

onSizeChange() 方法在view第一次被指定了大小值、或者view的大小发生改变时会被调用。

绘制View(Draw)

1.自定义控件被创建并且测量代码写好后,接下来就调用onDraw()来绘制View

2.在onDraw方法中开始绘制之前

画笔Paint对象信息要初始化完毕。因为View的重新绘制是比较频繁的,可能多次调用onDraw,所以初始化的代码不应该放在onDraw方法里。

3.Paint画笔

在绘图过程中起到了极其重要的作用,画笔主要保存颜色,样式等绘制信息,指定如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。

4.Canvas画布

当调整好画笔之后,需要绘制到画布上,这就得用Canvas类。Canvas画布可以绘制任何东西。还需要设置一些关于画布的属性,比如,画布的颜色、尺寸等。

5.常见绘制操作有哪些

6.Rect和RectF介绍和区别

Rect的参数为int类型,而RectF的参数类型为float类型,从这一点上来看,RectF的精度更高一些,但是他们都是通过四个坐标参数来确定一个矩形的区域。

与用户进行交互

优化自定义View

在上述步骤结束之后,其实一个较为完善的自定义控件已经出来。接下来需要确保自定义控件运行得流畅,官方说法是:为了避免控件体验迟缓,确保动画尽可能保持每秒60帧效果。

官网给出的优化建议:

到此这篇关于Android实现自定义View控件的流程详解的文章就介绍到这了,更多相关Android自定义View控件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文