您的位置:首页 > 移动开发 > Android开发

android MotionEvent 获取长按压时间长

2015-01-31 10:39 190 查看
思路:

1.记录ACTION_DOWN的aX, aY坐标;

2.在ACTION_MOVE判断是否移动,移动则取消记录时间,没移动就记录;

3.记录时间,按下坐标,移动坐标分别显示在TextView aa, bb, cc;

//声明

public class MainActivity extends ActionBarActivity {
private static TextView aa, bb, cc;
private float atime;
private float aX, aY;
private boolean mPressBreak = false;


//指定

aa = (TextView) findViewById(R.id.textView1);
bb = (TextView) findViewById(R.id.textView2);
cc = (TextView) findViewById(R.id.textView3);


//获取按压时间长

@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
super.onTouchEvent(event);
String str = "";
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
aX = event.getX();
aY = event.getY();
str = String.valueOf(aX) + " , " + String.valueOf(aY);
bb.setText(str);
mPressBreak = false;
break;
case MotionEvent.ACTION_MOVE:

atime = (event.getEventTime() - event.getDownTime()) / 1000;
str = String.valueOf(event.getX()) + " , "
+ String.valueOf(event.getY());
if ((Math.abs((event.getX() - aX)) > 10)
|| (Math.abs(event.getY() - aY) > 10)) {
atime = 0;
mPressBreak = true;
}
break;

}

if (!mPressBreak) {
aa.setText(String.valueOf((int) (atime)));
cc.setText(str);
}

return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: