activity是android应用开发中的四大组件之一,代表这应用程序的一个个可以看见的窗体,即一个个界面,我们所点击的按钮或者文本框都是activity的布局中所包含的控件,所谓的activity屏蔽按键其实就是activity中的控件拦截点击事件,并且不进行任何操作。
工具/原料
1
电脑
2
安卓模拟器
3
android studio
方法/步骤
1
首先我们要知道activity中的事件传递机制,实在布局控件中由外向内传播的,传播模式如图所示
2
来看一个很常见的activity的界面布局,外面是一个LinearLayout线性布局控件,里面一个Button的按钮控件,我们android的点击事件传递顺序是由外向内的,即由最外层的控件向里面传递,如果在最外层控件中将事件拦截,并且不做任何操作,就可以达到屏蔽触摸的效果了
3
所以这里我们继承最外层布局控件类,然后对其中的onInterceptTouchEvent(MotionEvent ev)方法进行重写,对触摸事件ev返回true进行拦截(这种做法比较暴力,比较正规的做法是对ev进行switch,不拦截其中down事件,这样内部控件就有办法知道外界发生了一次触碰)
4
activity除了会响应触摸事件之外,还会响应按键的点击事件,包括音量键,电源键,home键等
6
不过,在android4.0版本后,Home键被定义为强制返回桌面,即无法被onKeyDown()和onKeyUp()给完全拦截,我们还需要在activity执行onCreate()方法的时候设置Home键位可以被拦截,即设置enableHomeKeyDispatched(false); 这样子Home键就又可以被拦截了
7
需要注意的是,当你拦截了所有的触摸事件和按键事件之后,请在模拟器上跑,因为模拟器可以关,如果在真机上跑,那你就只能抠电池了,哈哈
注意事项
如果你觉得这篇文章有用的话,麻烦给我投下票(~ ̄▽ ̄)~,万分感谢
上一篇:2014年社会化营销几大趋势
下一篇:做微商的技巧和方法