画圆 圆随着鼠标点击而移动

1、自定义一个类继承View

package com.gj.gejuan20181130;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class BallView extends View {

private Paint mCirclePaint;
private int x=100;
private int y=100;


public BallView(Context context) {
    super(context);
    init();
}

public BallView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

public BallView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
}

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public BallView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
    init();
}

private void init() {
    mCirclePaint = new Paint();//创建画笔
    mCirclePaint.setStyle(Paint.Style.FILL);//设置样式
    mCirclePaint.setColor(Color.GREEN);//设置颜色
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawCircle(x,y,100,mCirclePaint);//画圆 第一个参数x轴,第二个参数y,轴坐标,第三个参数半径,第四个参数画笔
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    x = (int) event.getX();//获得X坐标
    y = (int) event.getY();//获得y坐标
    invalidate();//刷新
    return true;//拦截处理
}

}

注意:
build一下然后在main布局中引用自定义view

猜你喜欢

转载自blog.csdn.net/weixin_43603817/article/details/84643688