自定义View主要需要处理以下几个问题:
1.控制事件
2.刷新View
3.绘制View
1)对于控制事件需要处理onTouchEvent以及Sensor重力感应等方法。
2)刷新View的方法有invalidate(int l, int t, int r, int b ),四个参数分别代表左,上,右,下。
整个view刷新invalidate()
刷新一个矩形区域invalidate(Rect dirty)
刷新一个特性 Drawable invalidateDrawable(Drawable drawable)
执行invalidate类的方法将会设置view为无效,最终导致onBraw方法被重新调用。
3)绘制View主要用onDraw()中通过形参canvas来处理,相关绘制主要有drawRect(矩形),drawLine(画线),drawPath(任意多边形)等等。
view方法内部重写了很多接口,其回调方法可以帮助我们判断出view的位置和大小,比如onMeasure(int ,int ),onLayout(boolean,int ,int ,int ,int)
onSizeChanged(int ,int ,int ,int),具体作用大家可以用Logcat获取当view变化时每个形参的变动。
注:根据网络资料整理编写