`
zhy20045923
  • 浏览: 155838 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

监听home键及发送ontouch事件方法

阅读更多
// 比如说在button的onclick事件中,要发送一个ontouch的up事件,做法如下:
public void clickBtn(View v){
dispatchTouchEvent.(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 240, 400, 0));
}
// 期中该btn的onclick事件是在xml里面注册的
<Button android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text="发送onTouch的 UP事件"
android:onClick="clickBtn" />

// 截获Home事件做法
// 1.加权限禁止Home键  
 <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission> 
// 2.复写 onAttachedToWindow()  
@Override  
 public void onAttachedToWindow()  
 {  
   // TODO Auto-generated method stub  
   this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
   super.onAttachedToWindow();  
 }
// 3.监听onKeyDown事件
@Override  
 public boolean onKeyDown(int keyCode, KeyEvent event)  
 {  
   // TODO Auto-generated method stub  
   if(KeyEvent.KEYCODE_HOME==keyCode)  
     android.os.Process.killProcess(android.os.Process.myPid());  
   return super.onKeyDown(keyCode, event);  
 }  


// android4.0以后屏蔽home键通过   this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 是不能用的
// 如果是mtk平台的话,可以在setContentView之前getWindow().setFlags(WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED, WindowManager.LayoutParams.FLAG_HOMEKEY_DISPATCHED); 
//其他平台的需要修改源码,可以先按照第二步的操作,然后修改frameworks/base/services/java/com/android/server/wm/WindowManagerService.java和frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java


//打开activity时,需要解锁或者替换系统锁屏,只需要添加两个flag
super.onCreate(savedInstanceState);
                      getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
                      getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
                      setContentView(R.layout.main);


// 禁止状态栏下拉
StatusBarManager sbm = (StatusBarManager)this.getSystemService(Context.STATUS_BAR_SERVICE); 
        sbm.disable((StatusBarManager.DISABLE_EXPAND)); 
//需要权限以及系统签名
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"></uses-permission> 
<uses-permission android:name="android.permission.STATUS_BAR"></uses-permission>
分享到:
评论

相关推荐

    手势操作onTouch事件demo

    开发者可以通过重写`View`的`onTouchEvent`方法来监听和处理这些事件。 在`onTouchEvent`方法中,我们通常需要检查事件的动作类型,并根据不同的动作执行相应的操作。例如,当`ACTION_DOWN`事件发生时,表示用户...

    OnTouch事件对应代码

    `OnTouch`事件监听器通常通过实现`View.OnTouchListener`接口并重写`onTouch()`方法来设置。 在`onTouch()`方法中,我们可以通过`MotionEvent`对象获取到当前的触摸状态。例如,`MotionEvent.getAction()`可以返回...

    使用OnTouch实现一个控件同时设置单击、双击、长按事件demo

    `OnTouchListener`是Android中的一个接口,它定义了`onTouch(View view, MotionEvent event)`方法,用于监听视图上的触摸事件。`MotionEvent`对象包含了关于触摸事件的所有信息,如动作类型(ACTION_DOWN, ACTION_UP...

    onclick与ontouch和scroll监听冲突的解决方法

    在Android开发中,我们经常会遇到各种事件监听器的冲突问题,特别是`onclick`、`ontouch`和`scroll`监听器。这些事件在用户交互时可能会同时触发,导致不期望的行为,例如,当用户尝试滚动页面时,点击事件却意外...

    Android onTouch事件传递机制

    在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...

    Android在Fragment中实现监听触摸事件

    在实现Fragment中监听触摸事件时,需要注意的是,需要在Fragment中维护一个监听器列表,并且需要在Fragment中实现dispatchTouchEvent方法,以便将触摸事件分发给每个监听器。此外,还需要在使用时,将监听器注册到...

    Android ontouch事件处理的三种方式

    为了处理`ontouch`事件,我们需要创建一个实现了`OnTouchListener`的类,并重写`onTouch`方法。在该方法中,我们可以根据`MotionEvent`的类型(如ACTION_DOWN、ACTION_UP、ACTION_MOVE等)来判断用户的触摸行为,并...

    onTouch事件测试

    在Android开发中,`onTouch`事件是处理用户触摸屏幕行为的关键部分,它涉及到Activity、View及ViewGroup的交互。本测试Demo旨在帮助开发者深入理解`onTouch`事件的工作机制,通过实践提升对代码逻辑的理解。 `...

    Android中丰富多彩的onTouch事件.rar

    在Android开发中,触摸事件是用户与应用交互的重要方式,`onTouch`事件处理机制是这一过程中的核心。本文将深入探讨`onTouch`事件在Android中的应用,以及如何利用它来实现丰富多彩的用户交互。 一、`MotionEvent`...

    按键长按的一种监听方法

    在上述代码中,我们创建了一个名为`LongPressButton`的自定义按钮,重写了`onTouch`方法来处理触摸事件。当ACTION_DOWN事件发生时,我们启动一个延迟任务`longPressRunnable`,如果ACTION_UP事件在设定的超时时间内...

    Android onTouchEvent事件中onTouch方法返回值(介绍)

    2、若return true说明你已经成功执行onTouch方法了,在执行完onTouch中的代码之后,这个onTouch事件就结束了。也不会再调用组件如Gallery默认的onTouch方法了。在onTouch方法中,我们可以做很多操作,如move,down,up...

    android click 和onTouch 事件处理机制.

    在Android开发中,点击事件(click)和触摸事件(onTouch)是两种常见的用户交互处理方式,它们在处理用户屏幕操作时起到了至关重要的作用。理解它们的事件处理机制是构建高效且响应良好的用户界面的关键。 首先,...

    onTouch事件的传递思维导图(完整版)

    onTouch事件的传递思维导图(完整版)

    丰富多彩的Android onTouch事件.doc

    `onTouch`事件是通过`View`类的`onTouchEvent`方法来监听的。当用户触摸屏幕时,系统会生成一系列的MotionEvent,这些事件包含了触摸动作的类型、坐标位置等信息。`ACTION_DOWN`表示手指首次触碰屏幕,`ACTION_UP`...

    android悬浮框的onTouch和onClick事件同时存在

    而触摸事件(onTouch)则需要重写View的`onTouchEvent()`方法。当用户点击屏幕时,会先触发ACTION_DOWN,然后是ACTION_UP,中间可能伴随ACTION_MOVE。如果ACTION_DOWN和ACTION_UP之间没有ACTION_MOVE,我们就认为这...

    android Button监听事件的几种类型

    当用户与Button交互时,可以通过onTouch()方法获取ACTION_DOWN(按下)、ACTION_MOVE(移动)和ACTION_UP(释放)等事件。如果需要在按钮被触摸时执行特定操作,可以使用OnTouchListener: ```java myButton....

    android 采用windowmanager屏蔽home键

    悬浮窗口可以覆盖在其他应用之上,我们可以通过监听悬浮窗口的触摸事件来捕获Home键的按下情况。 1. **添加权限**:在AndroidManifest.xml文件中,需要添加以下权限来允许创建浮动窗口: ```xml ``` 2. **创建悬浮...

    onTouch测试

    `onTouch`是`View.OnTouchListener`接口中的方法,我们可以通过实现该接口并重写`onTouch`来监听触摸事件。在这个方法中,我们可以通过`MotionEvent`对象获取事件类型、坐标等信息,根据需要进行处理。 3. **...

    OnTouch的简单demo

    当你希望对某个View(如Button、TextView等)进行触摸事件的监听时,你需要实现这个接口,并重写`onTouch`方法。 2. **MotionEvent** `MotionEvent`是Android中的类,表示一个触摸事件,包含了关于触摸的所有信息...

    详细分析Android中onTouch事件传递机制

    在代码中,我们也可以通过`setOnTouchListener`设置监听器,并重写`onTouch(View v, MotionEvent event)`方法来捕获触摸事件。 事件的传递始于`dispatchTouchEvent(MotionEvent event)`方法,这是在`View`类中定义...

Global site tag (gtag.js) - Google Analytics