android触屏获取坐标

本文详细阐述了在Android中如何获取触摸事件的坐标,包括如何从触摸事件中提取坐标信息,以及如何利用这些坐标进行交互操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、获取控件坐标

以Button为例
public class MainActivity extends Activity implements OnTouchListener {
	
	private TextView textView;
	private Button btn;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		textView = (TextView)findViewById(R.id.textview);
		btn = (Button)findViewById(R.id.buttton);
		btn.setOnTouchListener(this); // 为按钮设置触摸监听,需要OnTouchListener接口
	}

	@Override 
	public boolean onTouch(View v, MotionEvent event) {
		// TODO Auto-generated method stub
		float x = event.getX(); // getX是获取相对当前控件的坐标
		float y = event.getY(); // getRawX是获取相对屏幕左上角的坐标
		switch (event.getAction()) {
		// ACTION_DOWN 按下
		// ACTION_MOVE 在屏幕上移动
		// ACTION_UP   离开屏幕
		case MotionEvent.ACTION_DOWN: textView.setText("x=" + x + " y=" + y); break;
		case MotionEvent.ACTION_MOVE: break;
		case MotionEvent.ACTION_UP: break;
		}
		return false;
	}
}

二、获取屏幕任意坐标
public class MainActivity extends Activity {
	
	private TextView textView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		textView = (TextView)findViewById(R.id.textview);
	}
	
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		float x = event.getX();
		float y = event.getY();
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN: break;
		case MotionEvent.ACTION_MOVE: textView.setText("x=" + x + " y=" + y); break; // 移动才会显示坐标
		case MotionEvent.ACTION_UP: break;
		}
		return true;
	}
}

参考:
http://blog.youkuaiyun.com/ithomer/article/details/8757240?ticket=ST-23371-t25neYxcVA0RxS3UG60a-passport.youkuaiyun.com
http://hi.baidu.com/prince_hyai/item/4c2d8cff6d00ae7b3d198bd3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值