主界面:
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>