Android 自定义View-android学习之旅(十四)

自定义View的步骤

当andoid提供的系统组件不满足要求时候,完全可以集成View来派生自定义组件。
首定定义一个继承View的子类,然后重写他一个或几个方法。

重写的方法介绍

构造器:这是定制View最基本的方式,当用java代码创建或者从xml文件读取都需要用到该方法。
onFinishInflate()这是一个回调方法,当应用从xml布局文件加载该组件,并利用它来构造界面后,会调用这个方法。
onMeasure():改方法检测View组件以及它包含的组件大小。
onLayout():需要分配子组件的位置大小时候,会调用这个方法。
onSizeChanged():该组件的大小被改变时候,会调用这个方法。
onDraw():绘制他的内容时候调用这个方法。
onKeyDown():按下键时调用这个方法。
onKeyOff():松开键时调用这个方法。
onTrackBallEvent():发生轨迹球时调用这个方法。
onTouchEvent():触摸事件发生时
onWindowFocusChanged():当组件得到失去焦点时
onAttachedToWindow():吧组件放到某个窗口时
onDetachedFromWindow():把组件从窗口分离时
onWindowVisibilityChanged():当组件的可见性改变时

跟随手指的小球实例

View代码

public class ViewTest extends View {
    public float currentX = 40;
    public float currentY = 50;
    private Paint paint;
    public ViewTest(Context context) {
        super(context);
    }
    public ViewTest(Context context,Attributes attiAttributes){
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        paint = new Paint();
        paint.setColor(Color.RED);
        canvas.drawCircle(currentX,currentY,15,paint);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        currentX = event.getX();
        currentY = event.getY();
        invalidate();
        return true;
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。