android自定义View基础

2020-07-02  本文已影响0人  deast
  1. 自定义View基础
    1.1 分类
    自定义View的实现方式有以下几种

类型 定义
自定义组合控件 多个控件组合成为一个新的控件,方便多处复用
继承系统View控件 继承自TextView等系统控件,在系统控件的基础功能上进行扩展
继承View 不复用系统控件逻辑,继承View进行功能定义
继承系统ViewGroup 继承自LinearLayout等系统控件,在系统控件的基础功能上进行扩展
继承ViewViewGroup 不复用系统控件逻辑,继承ViewGroup进行功能定义

image.png

在这里,我尝试用最简单方式跟初学者说一下如何自定义一个自己的view~

首先,最简单最简单的自定义view,有多简单?简单到没有逻辑,没有任何自带属性,只是简单展示,

譬如,我制作一个圆形图片。。。

一共只需要两步,

第一步,创建你的自定义类,让它继承View类,并重写构造方法。

第二步,重写ondraw()方法。

比如,我创建了这个自定义类名字叫做circleImageView,如下图所示:

image.png

注意,这里有两个默认的构造器方法,circleImageView(Context context)和circleImageView(Context context,AttributeSet arrts)

其中circleImageView(Context context)这个方法是你动态new的时候调用的,而circleImageView(Context context,AttributeSet arrts)这个方法是你在xml文件中调用才会调用这个方法。如下图,直接将标签定义为类名便可以了:

image.png

然后第二步,重写ondraw()方法!

在这里简单说一下,ondraw(),顾名思义就是画画方法,在自定义组件时候,其实内部可以简单分为三个步骤,也就是三大方法,onMeasure,onLayout,ondraw,这些方法在自定义组件中依次运行,先onMeasure获得组件大小,再onLayout知道组件布局位置,最后ondraw将组件渲染画出来,但是其实在自定义组件中onMeasure和onLayout不是必须重写的,所以在这里我先不说,后面再讲,就说这个ondraw方法,这个是必须实现的方法。

在上面的构造器方法中,我已经在组件初始化的时候便将要显示的图片初始化伟bitmap了

image.png

嗯,就是上面那个方法

接下来我们要做的就是将这个bitmap截成一个圆形,在这里我写了一个圆形方法,如下图:

image.png

好啦,画圆方法写好啦,最后就是在ondraw里面调用画画方法就好了,如下图

image.png
上一篇 下一篇

猜你喜欢

热点阅读