import android.app.Activity;
import android.view.MotionEvent;/**
*/
public class MainActivity extends Activity {
protected void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}; /**
* {@inheritDoc}
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY(); System.out.println("坐标:" + x + "," + y); return super.onTouchEvent(event);
}
}
怎么实现即使按住一个地点不动,也能持续不断的显示按键的位置
解决方案 »
- 关于与SurfaceView重叠的控件的点击事件处理
- 想买个android的手机做个人开发
- 该从哪里切入学习android内核呢
- android JNI 编译时出错了, 这是怎么回事,请大家帮我看看,人在线.速度结贴!
- 求各位大侠,帮帮我,sdk 找不到
- 有张大图(远大于屏幕),可以放大缩小,也可以左右移动,怎么实现
- android这个对话框怎么布局 能发一下代码吗?
- 关于滚动条与不同手机屏幕适配
- Android 浏览器浏览网页时的滑屏前进后退是如何实现的呢
- POST大文件应该怎么做?
- 各位大神,开发移动广告SDK,向多盟,有米之类的需要多少人马啊,需求怎样的架构师和人员
- Andriod Runtime报错求解!
import android.os.Handler;
import android.util.Log;
import android.view.MotionEvent;/**
*/
public class MainActivity extends Activity
{
private float x;
private float y;
private Handler mHandler = new Handler(); protected void onCreate(android.os.Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}; /**
* {@inheritDoc}
*/
@Override
public boolean onTouchEvent(MotionEvent event)
{
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
x = event.getX();
y = event.getY();
mHandler.post(mRunnable);
}
else
{
mHandler.removeCallbacks(mRunnable);
super.onDestroy();
}
return false;
}
private Runnable mRunnable = new Runnable()
{
public void run()
{
//为了方便 查看,我们用Log打印出来
while(true)
{
System.out.println("坐标:" + x + "," + y);
}
}
};
@Override
protected void onDestroy() {
//将线程销毁掉
mHandler.removeCallbacks(mRunnable);
super.onDestroy();
}
}
然后就会死机////
大哥,你用while(true)...........................不死机才怪
为何感觉这代码这么暴力...
楼主单片机出身的么....Timer timer = new Timer(true);
TimerTask task=new TimerTask (){
@Override
public void run() {
System.out.println("坐标:" + x + "," + y);//你喜欢System.out那就不Log.d了...
}
};
public boolean onTouchEvent(MotionEvent event){
x = event.getX();
y = event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
timer.scheduleAtFixedRate(task, 100, 100);
return false;
break;
case MotionEvent.ACTION_MOVE:
return false;
break;
case MotionEvent.ACTION_UP:
timer.cancel();
timer = new Timer(true);
return true;
break;
}
}