package
com.example.d_motionevent;
import
android.os.Bundle;
import
android.app.Activity;
import
android.util.Log;
import
android.view.MotionEvent;
import
android.view.View;
import
android.view.View.OnTouchListener;
import
android.widget.Button;
/**
* 地址:http://glblong.blog.51cto.com/3058613/1557683
* @author zeng
*/
public
class
MainActivity
extends
Activity
implements
OnTouchListener
{
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View layout1 = findViewById(R.id.layout1);
layout1.setOnTouchListener(
this
);
Button trueButton1 = (Button) findViewById(R.id.trueButton1);
trueButton1.setOnTouchListener(
this
);
Button falseButton1 = (Button) findViewById(R.id.falseButton1);
falseButton1.setOnTouchListener(
this
);
View layout2 = findViewById(R.id.layout2);
layout2.setOnTouchListener(
this
);
Button trueButton2 = (Button) findViewById(R.id.trueButton2);
trueButton2.setOnTouchListener(
this
);
Button falseButton2 = (Button) findViewById(R.id.falseButton2);
falseButton2.setOnTouchListener(
this
);
}
@Override
public
boolean
onTouch(View v, MotionEvent event)
{
String myTag = v.getTag().toString();
Log.e(myTag,
"==========="
+
"Activity 的 onTouch 方法"
+
"==========="
);
Log.e(myTag,
"被点击的View = "
+ myTag);
Log.e(myTag, describeEvent(v, event));
if
(
"true"
.equals(myTag.substring(
0
,
4
)))
{
Log.e(myTag,
" == true"
);
return
true
;
}
else
{
Log.e(myTag,
" == false"
);
return
false
;
}
}
@Override
public
boolean
onTouchEvent(MotionEvent event)
{
return
super
.onTouchEvent(event);
}
protected
static
String describeEvent(View view, MotionEvent event)
{
StringBuilder sb =
new
StringBuilder(
300
);
sb.append(
"Action: "
).append(event.getAction()).append(
"\n"
);
sb.append(
"相对坐标: "
).append(event.getX()).append(
" * "
).append(event.getY()).append(
" "
);
sb.append(
"绝对坐标: "
).append(event.getRawX()).append(
" * "
).append(event.getRawY()).append(
"\n"
);
if
(event.getX() <
0
|| event.getX() > view.getWidth() || event.getY() <
0
|| event.getY() > view.getHeight())
{
sb.append(
"未点击在View范围内"
);
}
sb.append(
"Edge flags: "
).append(event.getEdgeFlags()).append(
" "
);
sb.append(
"Pressure: "
).append(event.getPressure()).append(
" "
);
sb.append(
"Size: "
).append(event.getSize()).append(
"\n"
);
sb.append(
"Down time: "
).append(event.getDownTime()).append(
"ms "
);
sb.append(
"Event time: "
).append(event.getEventTime()).append(
"ms "
);
sb.append(
"Elapsed: "
).append(event.getEventTime() - event.getDownTime()).append(
"ms\n"
);
return
sb.toString();
}
}