如何给定屏幕作标,触发单击屏幕事件 比如我知道某个button在(100, 100) 的坐标处我想通过这个坐标的值来触发butoon的单击动作,该怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 点击屏幕的时候判断坐标是不是在这个button上。。如果是则相应事件 按钮在(100,100)处,和按钮的size组成一个长方形的坐标集合,只要判断点击的坐标是不是在这个集合里面就行了 判断哪个指标是不是在按钮所在的区域(楼上的已经说了),在的话执行事件监听器里面的onClick函数就达到效果了。来个例子public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);// new MyToast(this,"测试提示消息!",800); Button btn = (Button) findViewById(R.id.btn); btn.setText("BUTTON"); OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(View v) { new MyToast(MainActivity.this, "btn clicked !", Toast.LENGTH_LONG); } }; btn.setOnClickListener(onClickListener); onClickListener.onClick(btn); //关键就是这里 }} 呃,是不是我没表述清楚~~不然我这样问吧,我自己定义一个接口MyClickEvent(int x, int y);我调用这个接口。要怎么转换成onclick事件. onClick事件的本质貌似就是获得组件的坐标集合,然后判断点击事件是不是在这个集合集合之内,是则触发 嘿嘿,实现了~ 从这个贴子学来的http://topic.csdn.net/u/20110511/09/4638a94d-9352-41ea-8be1-4b955ab24321.html由于事件都是通过dispatchTouchEvent 分发的.通过MotionEvent.obtain 实现一个自己的事件 然后传给dispatchTouchEvent就行了click事件是由一个ACTION_DOWN和一个ACTION_UP组成的。所以传了两个event实现了下面代码public void myClickEvent(float x, float y) { long firstTime = SystemClock.uptimeMillis(); final MotionEvent firstEvent = MotionEvent.obtain(firstTime, firstTime, MotionEvent.ACTION_DOWN, x, y, 0); long secondTime = firstTime + 30; final MotionEvent secondEvent = MotionEvent.obtain(secondTime, secondTime, MotionEvent.ACTION_UP, x, y, 0); dispatchTouchEvent(firstEvent); dispatchTouchEvent(secondEvent); } 问个入门问题 android中 组件 和 线程 的关系 !!! android怎么点击屏幕就在屏幕上画一个半径为10的圆 gps开关问题 请推荐一个PC端(Windows)用的Android文件浏览器 Contacts查询问题 怎样启动一个应用,让这个应用启动后直接Pause到后台? 用android studio将html5封装成apk android mediaPlay 获取播放时间问题 请问各路大神关于android mediarecorder录像提示start failed问题,在线等 android2.3中怎么对蓝牙已匹配设备进行设置? android上如何根据名称获取对应的图片?
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// new MyToast(this,"测试提示消息!",800);
Button btn = (Button) findViewById(R.id.btn);
btn.setText("BUTTON");
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
new MyToast(MainActivity.this, "btn clicked !", Toast.LENGTH_LONG);
}
};
btn.setOnClickListener(onClickListener);
onClickListener.onClick(btn); //关键就是这里
}
}
不然我这样问吧,我自己定义一个接口
MyClickEvent(int x, int y);
我调用这个接口。要怎么转换成onclick事件.
从这个贴子学来的
http://topic.csdn.net/u/20110511/09/4638a94d-9352-41ea-8be1-4b955ab24321.html由于事件都是通过dispatchTouchEvent 分发的.通过MotionEvent.obtain 实现一个自己的事件 然后传给dispatchTouchEvent就行了
click事件是由一个ACTION_DOWN和一个ACTION_UP组成的。所以传了两个event实现了下面代码public void myClickEvent(float x, float y) {
long firstTime = SystemClock.uptimeMillis();
final MotionEvent firstEvent = MotionEvent.obtain(firstTime, firstTime,
MotionEvent.ACTION_DOWN, x, y, 0);
long secondTime = firstTime + 30;
final MotionEvent secondEvent = MotionEvent.obtain(secondTime,
secondTime, MotionEvent.ACTION_UP, x, y, 0); dispatchTouchEvent(firstEvent);
dispatchTouchEvent(secondEvent);
}