自定义view绘制一个跟随手指触摸移动的小球
程序员文章站
2022-06-09 09:49:02
...
今天我们就来绘制一个能跟随手指的触摸而移动的小球。其实很简单,只要我们能够运用自定义view中的
onTouchEvent方法我们就可以很轻易的做到。
第一步:我们使用自定义view绘制一个小球:
private float x ;
private float y ;
Paint paint = new Paint();
public myView(Context context) {
super(context);
}
public myView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
x = getWidth()/2;//获取x y坐标
y = getHeight()/2;
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置颜色为红色
paint.setColor(Color.RED);
canvas.drawCircle(x,y,100,paint);
}
第二步:想办法让小球跟着手指移动:
我们想让小球跟着手指触摸移动,就得需要重写onTouchEvent方法,我们在这个方法里面重新获取x,y坐标,然后再刷新视图,就起到了移动的xiao效果
@Override
public boolean onTouchEvent(MotionEvent event) {
x = event.getX();
y = event.getY();
invalidate();
return true;//这里面必须返回true,否则小球移动不了。
}