Android onKeyDown自定义功能
来源:互联网 发布:淘宝营业执照代办真假 编辑:程序博客网 时间:2024/06/08 13:25
最近做一个应用,需要实现类似于自拍杆的功能,即将自拍杆插头插入耳机孔,然后模拟自拍杆,点击自拍杆按钮实现拍照功能或者调节音量功能。之前没有接触过关于硬触发的开发,所以不太清楚在Android项目中该如何添加实现,在网上查了一番,发现Android中提供了一个onKeyDown方法,用来监听手机键盘被按下时的事件动作。查阅Android API可知:
public abstract boolean onKeyDown (int keyCode,KeyEvent event)有这么一个方法,返回值类型为boolean类型的函数,其中keyCode代表在event.getKeyCode()的值,简单来说就是手机按键被按下的键值,手机键盘中每个按键都有单独的键值(键盘码)。event为关键事件的说明,即具体的一些按键信息,包括按键事件状态、按键事件类型等,当按键被用户按下时,系统会自动将该事件封装成KeyEvent对象供程序使用。如果想自定义一个键盘监听事件,只需要复写该方法即可,但要注意该事件需要返回true,确定执行完该方法,如果选择false,则表明该事件没有执行完成,还需要其他回调方法对其进行处理。onKeyDown()这个函数其实可以实现的功能较为多,包括屏幕上Home键、返回键、菜单键、开关机键和音量键等,均可以自定义设置监听事件。
下面是在一个Android自定义相机中添加音量键控制拍照的示例:
/* * 获取音量键监听事件 *设置自拍杆功能 * */ public boolean onKeyDown(int keyCode, KeyEvent keyEvent) { if (keyCode == keyEvent.KEYCODE_VOLUME_UP) {//模拟自拍杆连接点击事件,在点击时,复写音量上键被点击事件,实现拍照功能 if (count == 1) { camera.takePicture(shutterCallback, null, new MyPictureCallback()); Toast.makeText(MainActivity.this,"Scanning",Toast.LENGTH_SHORT).show(); return true;//返回true,表示该事件完成 }else if (count != 1){ camera.takePicture(shutterCallback, null, new SecondPictureCallback()); Toast.makeText(MainActivity.this, "Comparing", Toast.LENGTH_SHORT).show(); return true; } } return super.onKeyDown(keyCode, keyEvent);//此处需要返回值 }复写onKeyDown()方法较为简单,但是监听事件的类型和具体事件需要仔细阅读相关API文档,然后在该方法中实现需求即可。
1 0
- Android onKeyDown自定义功能
- android 自定义 View 中 onKeyDown 没反应
- android onKeydown
- Android onKeyDown
- Android onKeydown
- android onKeydown
- android onKeydown
- android:onKeyDown
- android:onKeyDown
- android:onKeyDown
- android tabActivity中 onKeyDown无效解决 退出功能
- Android 自定义 View 中 onKeyDown监听 没反应
- Android 自定义 View 中 onKeyDown监听 没反应
- android 在自定义的view中接收不到onkeydown事件
- android中onKeyDown解析
- android onkeydown 事件
- android onkeydown()简介
- android onkeydown()简介
- Printf的用法
- 多重背包问题
- 文章标题
- 怎么判断List集合是否为空?
- 蓝桥杯:算法训练 6-1 递归求二项式系数值
- Android onKeyDown自定义功能
- Android自定义图片选取器,类似微信样式,自带裁剪功能,适配Android7.0
- VoLTE、VoWiFi和VoIP有什么不同?
- HTTP POST GET 本质区别详解
- Myeclipse下删掉jar包之后出现感叹号或者在Libraries下面报错的处理方法
- Vue2.0+CKeditor
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 1)
- 神经网络一些概念
- 靶形数独