android 监听屏幕是不是被触碰过?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 监听屏幕是不是被触碰过?相关的知识,希望对你有一定的参考价值。

比如说我写了一个应用程序,在当前的应用程序中启动第二个应用程序,然后点击屏幕,怎么让第一个应用程序知道我在点击了屏幕呢?前提是当前是运行第二个应用程序啊!第一个应用程序有可能是Service,是在后台执行的!

在第一个程序中注册一个广播接收器.BroadcastReceiver,指定接受的事件为A.
然后在第二个程序中捕获OnTouch事件,点击屏幕时,发送指定的广播A,android的广播系统所有程序都可以收到.
这样就实现了你想要的功能.
参考技术A

Android判断屏幕有没有触碰,可以通过OnTouch事件来判断。当用户触摸了屏幕就会执行onTouch事件。

    在Activity中重写onTouchEvent方法。

    在public boolean onTouchEvent(android.view.MotionEvent event) 中用变量记录即可。

    boolean isTouch = true;即可判断出用户是否触摸过屏幕了。

在android系统中,那些被监听对象都有哪些

在android系统中,那些被监听对象有哪些:1、单击事件(View.OnClickListener):当用户触碰到某个组件或者方向键被按下时产生该事件,该事件的处理方法是onClick()。

2、焦点事件(View.OnFocusChangeListener):组件得到或者失去焦点时产生该事件,事件处理方法是onFocusChange()。

3、按键事件(View.OnKey Listener):用户按下或者释放设备上的某个按键时产生,事件处理方法是 onKey()。

4、触碰事件(View.OnTouchListener):设备具有触摸屏功能时,触碰屏幕产生该事件。事件处理方法是onTouch()。

5、创建上下文菜单事件(View.OnCreateContextMenu Listener):创建上下文菜单时产生该事件,事件处理方法是 onCreateContextMenu()。
参考技术A 作代码
在Android 应用开发过程中,常用监听事件如下:

逆天游云
转载
关注
0点赞·221人阅读
1.Button(按钮)的监听事件:OnClickListener 接口 onClick(View v)接口方法;
2.SeekBar(进度条)的监听事件:OnSeekBarChangedListener接口,
①onProgressChanged(SeekBar seekBar, int progress, boolean fromUser);
②onStartTrackingTouch(SeekBar seekBar);//滑动开始
③onStopTrackingTouch(SeekBar seekBar);//滑动结束
3. EditText(编辑器)的监听事件:OnKeyListener接口
onKey(View v, int keyCode, KeyEvent event)//接口方法 监听键盘事件
4. RadioGroup(单选按钮)的监听事件:OnCheckedChangeListener接口
5. Spinner(下拉列表)的监听事件:OnItemSelectedListener接口
①onItemSelected(AdapterView<?> parent, View view, int position, long id);
②onNothingSelected(AdapterView<?> parent)
6. Menu(菜单)的监听事件:Activity内部方法 不同菜单调用不同选择方法
①public boolean onMenuItemSelected (int featureId, MenuItem item);
②public boolean onOptionsItemSelected (MenuItem item);
③public boolean onContextItemSelected (MenuItem item);
7. Dialog(对话框)的监听事件:实现了多个总类型接口,每个总类型接口中有若干个接口,根据不同种类Dialog,会实现不同的接口方法。implements DialogInterface KeyEvent.Callback View.OnCreateContextMenuListener Window.Callback
如按钮类型的Dialog会实现总接口下的子接口DialogInterface.OnClickListener;
8. DatePicker(日期)日期改变的监听事件: OnDateChangedListener接口
onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth);
9.DatePickerDialog 事件监听
onDateSetListener:设置日期时触发
10. TimePicker(时间)一天中事件改变的监听事件:OnTimeChangedListener接口
onTimeChanged(TimePicker view, int hourOfDay, int minute);
11.TimePickerDialog 事件监听
onTimeSetListener: 设置时间时触发
12. SlidingDrawer(滑动式抽屉)的监听事件:OnDrawerOpenListener接口
onDrawerOpened();Invoked when the drawer becomes fully open.
13. RatingBar(星级等级评价)的监听事件:OnRatingBarChangeListener
onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser);
14. Chronometer(计数器)的监听事件:OnChronometerTickListener接口
onChronometerTick(Chronometer chronometer); //提示计数器数字改变
15. ListView事件监听
setOn ItemSelectedListener:鼠标滚动时触发
setOnItemClickListener: 点击时触发
16.Gallery 事件监听
setOnItemClickListener: 点击时触发
17.GridView 事件监听
setOnltemClickListener: 点击时触发

二、View内部定义好的事件监听器和调用时机

setOnClickListener(View.OnClickListener l)
setOnCreateContextMenuListener(View.OnCreateContextMenuListener l)
setOnDragListener(View.OnDragListener l)
setOnFocusChangeListener(View.OnFocusChangeListener l)
setOnGenericMotionListener(View.OnGenericMotionListener l)
setOnHoverListener(View.OnHoverListener l)
setOnKeyListener(View.OnKeyListener l)
setOnLongClickListener(View.OnLongClickListener l)
9.setOnSystemUiVisibilityChangeListener(View.OnSystemUiVisibilityChangeListener l)
setOnTouchListener(View.OnTouchListener l)
三、其他类型的监听事件和接口方法
1.动画变化监听事件
setAnimationListener(new Animation.AnimationListener());
①onAnimationStart(Animation animation) – 动画开始时调用
②onAnimationEnd(Animation animation) – 动画结束时调用
③onAnimationRepeat(Animation animation) – 动画重复时调用
监听动画的某一次执行结果(不必每次都覆写多个方法)
addListener(new AnimatorListenerAdapter()
onAnimationEnd(Animator animation) - 只在动画执行完成时调用
2.ViewPager的滑动监听事件
setOnPageChangeListener(OnPageChangeListener onPageChangeListener)
①onPageScrolled(int position, float positionOffset, int positionOffsetPixels) - 当页面在滑动的时候会调用此方法,在滑动被停止之前,此方法回一直得到调用;第一个参数:当前页面,第二个参数:当前页面偏移百分比(以0.6为界,标记是否滑动到下一个还是回到原位),第三个参数:当前页面偏移的像素位置;
②onPageSelected(int position) - 此方法是页面跳转完后得到调用;参数position为当前所在位置;
参考技术B 1.Button(按钮)的监听事件:OnClickListener 接口 onClick(View v)接口方法;
2.SeekBar(进度条)的监听事件:OnSeekBarChangedListener接口,
①onProgressChanged(SeekBar seekBar, int progress, boolean fromUser);
②onStartTrackingTouch(SeekBar seekBar);//滑动开始
③onStopTrackingTouch(SeekBar seekBar);//滑动结束
3. EditText(编辑器)的监听事件:OnKeyListener接口
onKey(View v, int keyCode, KeyEvent event)//接口方法 监听键盘事件
4. RadioGroup(单选按钮)的监听事件:OnCheckedChangeListener接口
5. Spinner(下拉列表)的监听事件:OnItemSelectedListener接口
①onItemSelected(AdapterView<?> parent, View view, int position, long id);
②onNothingSelected(AdapterView<?> parent)
6. Menu(菜单)的监听事件:Activity内部方法 不同菜单调用不同选择方法
①public boolean onMenuItemSelected (int featureId, MenuItem item);
②public boolean onOptionsItemSelected (MenuItem item);
③public boolean onContextItemSelected (MenuItem item);
7. Dialog(对话框)的监听事件:实现了多个总类型接口,每个总类型接口中有若干个接口,根据不同种类Dialog,会实现不同的接口方法。implements DialogInterface KeyEvent.Callback View.OnCreateContextMenuListener Window.Callback
如按钮类型的Dialog会实现总接口下的子接口DialogInterface.OnClickListener;
8. DatePicker(日期)日期改变的监听事件: OnDateChangedListener接口
onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth);
9.DatePickerDialog 事件监听
onDateSetListener:设置日期时触发
10. TimePicker(时间)一天中事件改变的监听事件:OnTimeChangedListener接口
onTimeChanged(TimePicker view, int hourOfDay, int minute);
11.TimePickerDialog 事件监听
onTimeSetListener: 设置时间时触发
12. SlidingDrawer(滑动式抽屉)的监听事件:OnDrawerOpenListener接口
onDrawerOpened();Invoked when the drawer becomes fully open.
13. RatingBar(星级等级评价)的监听事件:OnRatingBarChangeListener
onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser);
14. Chronometer(计数器)的监听事件:OnChronometerTickListener接口
onChronometerTick(Chronometer chronometer); //提示计数器数字改变
15. ListView事件监听
setOn ItemSelectedListener:鼠标滚动时触发
setOnItemClickListener: 点击时触发
16.Gallery 事件监听
setOnItemClickListener: 点击时触发
17.GridView 事件监听
setOnltemClickListener: 点击时触发
参考技术C 在android系统中,那些被监听对象有哪些?答:Android使用内部类作为事件监听器。

继续使用WidgetSample工程,在app/main/res/layout/目录下创建event_inner_class_layout.xml文件,在其中填充如下代码片段:

然后在java包下创建EventListenerInnerClassActivity.java文件,加载上面新建的布局文件,使用内部类监听事件,需要修改一下界面交互代码,具体代码如下:

修改AndroidManifest.xml文件中启动的Activity为EventListenerInnerClassActivity,具体代码如下:
运行程序,点击按钮,可以看到下图所示界面效果。

以上是关于android 监听屏幕是不是被触碰过?的主要内容,如果未能解决你的问题,请参考以下文章

千万小心!系统监控下这10条红线被触碰,税务稽查主动敲你的门!

事件处理机制之Gestures(手势)

在android系统中,那些被监听对象都有哪些

如何监听android的屏幕滑动停止事件

Android 防止屏幕关闭

React native orientation 屏幕旋转监听