自定义组件三大步 onmeasre(),onLayout(),onDraw()很多自定义的博客都有讲,这里主要讲讲自己自定义中的一些不熟悉的地方,以便以后复习。
setShadowLayer()
setShadowLayer(12,0,12,Color.argb(61, 0x00, 0x00, 0x00)); 第一个参数为模糊半径,越大越模糊。 第二个参数是阴影离开文字的x横向距离。 第三个参数是阴影离开文字的Y横向距离。 第四个参数是阴影颜色。
RectF()
Rect和RectF之间的区别和联系
1.Rect的参数为int类型,而RectF的参数类型为float类型,从这一点上来看,RectF的精度更高一些,但是他们都是通过四个坐标参数来确定一个矩形的区域。
RectF一共有四个构造方法:
RectF()构造一个无参的矩形
RectF(float left,float top,float right,float bottom)构造一个指定了4个参数的矩形
RectF(Rect F r)根据指定的RectF对象来构造一个RectF对象(对象的左边坐标不变)
RectF(Rect r)根据给定的Rect对象来构造一个RectF对象
RectF提供了很多方法,下面介绍几个方法:
Public Boolean contain(RectF r);判断一个矩形是否在此矩形内,如果在这个矩形内或者和这个矩形等价则返回true, 同样类似的方法还有public Boolean contain(float left,float top,float right,float bottom)和public Boolean contain(float x,float y)。
Public void union(float x,float y)更新这个矩形,使它包含矩形自己和(x,y)这个点。
2.Rect和RecF的用法基本类似,只是参数为int类型,Rect(int left,int top,int right,int bottom),所取得的图形区域为
weight(right - left),height(bottom - top),在绘制的时候要注意这四个坐标之间的关系。
drawRoundRect()
该方法用于在画布上绘制圆角矩形,通过指定RectF对象以及圆角半径来实现。该方法是绘制圆角矩形的主要方法,同时也可以通过设置画笔的空心效果来绘制空心的圆角矩形。
【基本语法】public void drawRoundRect (RectF rect, float rx, float ry, Paint paint)
参数说明
rect:RectF对象。
rx:x方向上的圆角半径。
ry:y方向上的圆角半径。
paint:绘制时所使用的画笔。