public class BallView extends View {
private Paint mPaint;
private Context context;
private int x = 38;
private int y = 38;
private int radius = 35;//半径
public BallView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//用canvas将屏幕设为白色
canvas.drawColor(Color.WHITE);
//设置画笔颜色为红色
mPaint = new Paint(Color.GREEN);
mPaint.setAntiAlias(true);
canvas.drawCircle(x, y, radius, mPaint);
}
@Override//事件分发
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x = (int) event.getX();
y = (int) event.getY();
System.out.println("按下时: " + "x坐标:" + event.getRawX() + " " + "y坐标:" + event.getRawY());
break;
case MotionEvent.ACTION_MOVE:
x = (int) event.getX();
y = (int) event.getY();
System.out.println("按下时: " + "x坐标:" + event.getRawX() + " " + "y坐标:" + event.getRawY());
break;
case MotionEvent.ACTION_UP:
x = (int) event.getX();
y = (int) event.getY();
System.out.println("按下时: " + "x坐标:" + event.getRawX() + " " + "y坐标:" + event.getRawY());
break;
}
//获取屏幕宽高
WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int width = manager.getDefaultDisplay().getWidth();
int height = manager.getDefaultDisplay().getHeight();
if(x >= 18 && y>=18 && x<=width-18 && y<=height-18){
postInvalidate();
}
return true;
}
}