主界面:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyView myView = new MyView(this); } }
view类:
public class MyView extends View { private Paint paint; private float X = 100; private float Y = 100; Rect rect = new Rect(); private boolean M=false; public MyView(Context context) { super(context); } public MyView(Context context, @Nullable AttributeSet att) { super(context, att); paint = new Paint(); paint.setColor(Color.RED); paint.setAntiAlias(true); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(X, Y, 100, paint); rect.set((int) (X - 100), (int) (Y - 100), (int) (X + 100), (int) (Y + 100)); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: float x1 = event.getX(); float y1 = event.getY(); if(x1 >rect.left && x1 <rect.right && y1>rect.top &&y1<rect.bottom){ Toast.makeText(getContext(),"触摸事件的X值:"+x1,Toast.LENGTH_SHORT).show(); M = true; }else { M = false; } break; case MotionEvent.ACTION_MOVE: if(M){ X = event.getX(); Y = event.getY(); invalidate(); } break; } return true; } }
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.day_03.MainActivity"> <com.bwie.day_03.MyView android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
