2019-08-09 09:46:50.042 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域1
2019-08-09 09:47:10.510 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域2
2019-08-09 09:47:10.615 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域2
2019-08-09 09:47:11.990 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域2
2019-08-09 09:47:12.814 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域1
2019-08-09 09:47:13.375 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域1
2019-08-09 09:47:13.810 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域1
2019-08-09 09:47:14.274 14449-14449/com.example.myclicktest E/TestView: onTouchEvent:点击区域2
package com.example.myclicktest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class TestView extends View {
private static final String TAG = "TestView";
Rect rect1;
Rect rect2;
Paint paint1;
Paint paint2;
public TestView(Context context) {
super(context);
init();
}
public TestView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
rect1 = new Rect(0, 0, 300, 300);
rect2 = new Rect(300, 0, 600, 300);
paint1 = new Paint();
paint1.setAntiAlias(true);
paint1.setColor(Color.RED);
paint2 = new Paint();
paint2.setAntiAlias(true);
paint2.setColor(Color.BLUE);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(rect1.width() + rect2.width(), rect1.height());
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(rect1, paint1);
canvas.drawRect(rect2, paint2);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
int x = (int) event.getX();
int y = (int) event.getY();
if (rect1.contains(x, y)) {
Log.e(TAG, "onTouchEvent:点击区域1");
} else if (rect2.contains(x, y)) {
Log.e(TAG, "onTouchEvent:点击区域2");
}
break;
case MotionEvent.ACTION_UP:
break;
}
return super.onTouchEvent(event);
}
}