你需要implement OnTouchListener
並且實做onTouch function
當你touch screen的時候
就可以印出x,y的位置
Source code:
http://dl.dropbox.com/u/2452511/AndroidAP/GetFingerTouchPos.tar.gz
測試平台: Android 2.2
Update: 20110301
此外
在onCreate地方
替你的layout加上
setOnTouchListener(this);
才會接得到
5 則留言:
真的好感謝您的分享!!!
能對你有幫助
讓我感到非常高興
大感謝 Nelson大師的sample code.
大感謝 Nelson大師的sample code.
int pointerCount = event.getPointerCount();
sb.append(String.format("節點數: %d %n", pointerCount));
switch( event.getAction() )
{
case MotionEvent.ACTION_DOWN: // 按下
if( pointerCount == 4 ) // 多點觸控
{
gTouchX1 = (float) event.getX(0); // 第一個觸控點
gTouchY1 = (float) event.getY(0);
gTouchX2 = (float) event.getX(1); // 第二個觸控點
gTouchY2 = (float) event.getY(1);
gTouchX3 = (float) event.getX(2); // 第三個觸控點
gTouchY3 = (float) event.getY(2);
gTouchX4 = (float) event.getX(3); // 第四個觸控點
gTouchY4 = (float) event.getY(3);
}
break;
case MotionEvent.ACTION_MOVE: // 拖曳移動
//if( pointerCount == 1 ) // 單點觸控
//{
// gTouchX = (int) event.getX();
// gTouchY = (int) event.getY();
//}
if( pointerCount == 4 ) // 多點觸控
{
gTouchX1 = (float) event.getX(0); // 第一個觸控點
gTouchY1 = (float) event.getY(0);
gTouchX2 = (float) event.getX(1); // 第二個觸控點
gTouchY2 = (float) event.getY(1);
gTouchX3 = (float) event.getX(2); // 第三個觸控點
gTouchY3 = (float) event.getY(2);
gTouchX4 = (float) event.getX(3); // 第四個觸控點
gTouchY4 = (float) event.getY(3);
}
break;
case MotionEvent.ACTION_UP: // 放開
//sb.append(String.format("pointer : (%.1f,%.1f) %n", gTouchX, gTouchY));
break;
}
sb.append(String.format("pointer : (%.1f,%.1f) %n", gTouchX1, gTouchY1));
sb.append(String.format("pointer : (%.1f,%.1f) %n", gTouchX2, gTouchY2));
sb.append(String.format("pointer : (%.1f,%.1f) %n", gTouchX3, gTouchY3));
sb.append(String.format("pointer : (%.1f,%.1f) %n", gTouchX4, gTouchY4));
float TotalX=gTouchX1+gTouchX2+gTouchX3+gTouchX4;
float TotalY=gTouchY1+gTouchY2+gTouchY3+gTouchY4;
sb.append(String.format("X軸總計 : (%.1f) %n", TotalX));
sb.append(String.format("Y軸總計 : (%.1f) %n", TotalY));
if (gTouchX1 > 200 && gTouchX1<400 && gTouchY1 > 200 && gTouchY1<400)
if (gTouchX2 > 400 && gTouchX2<600 && gTouchY2 > 400 && gTouchY2<600)
if (gTouchX3 > 600 && gTouchX3 < 800 && gTouchY3 > 600 && gTouchY3<800)
if (gTouchX4 > 800 && gTouchX4<1000 && gTouchY4 > 800 && gTouchY4<1000)
sb.append(String.format("全部進洞 %n"));
else
sb.append(String.format("未進洞 %n"));
else
sb.append(String.format("未進洞 %n"));
else
sb.append(String.format("未進洞 %n"));
else
sb.append(String.format("未進洞 %n"));
為什麼我這樣打
無法顯示觸碰螢幕時的座標 一定要移動才會顯示??
是為什麼?
張貼留言