自定义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;
}
}
时间: 2024-11-06 01:01:32