Android 遥控器焦点
在Android开发中,我们经常遇到的是手机,在手机上,我们看到哪就用手指头戳到哪就OK了。但是当我们遇到了Android电视时,这时候,我们用手去戳电视屏是没有用的。这时候就有人会说了,电视都是用遥控器的,谁会用手去戳啊。接下来在这里我们就说一下,Android开发中是怎么实现遥控器监听的。深层次的View的点击事件原理等,笔者经验有限,先不多说,也许在今后的日子里,随着经验的增加,会在博客里分享心得。今天在这里,主要分享的是从功能效果方面出发的。
我们说要想实现遥控器监听,主要离不开两个监听事件。一个是OnKeyDown()方法,还有一个就是要实现OnFocusChangeListener监听器。下面就是想分享一下怎么综合这两个监听,让遥控器按我们的意图实现遥控功能。
首先我们要先实现OnFocusChangeListener,笔者采用的是内部类的形式,代码如下:
class MyFocusChangeListener implements View.OnFocusChangeListener{@Overridepublic void onFocusChange(View v, boolean hasFocus) {switch (v.getId()){case R.id.控件Id1:if(hasFocus){//Id1控件得到焦点时的业务逻辑}else{//Id1控件失去焦点时的业务逻辑}break;case R.id.控件Id2:if(hasFocus){//Id2控件得到焦点时的业务逻辑}else{//Id2控件失去焦点时的业务逻辑}break;}}}
其次我们实现OnKeyDown()方法去监听遥控器的按键,去改变焦点的移动代码如下:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {switch(keyCode){case KeyEvent.遥控器的按键:if(view1.hasFocuse()){//假定我们实例化MyFocusChangeListener的实例对象为myListenermyListener.(view2,true)}break;}return super.onKeyDown(keyCode, event);}
通过上面的代码,我们就成功的把view1的焦点移动到了view2上。另外就是,一定要记得在我们进行布局时,一定要把view控件属性上加上focusable=true这样的属性,另外在OnCreate()方法里,为我们最开始默认的控件添加这样一个方法,假如说最开始默认的焦点在view1上,则添加view1.FocusRequ()。只要完成了这些就能让遥控器按照我们的意愿去实现操作了。
Android 遥控器焦点相关推荐
- android 焦点分发,Android TV 焦点分发原理解析
前言 相信很多刚接触AndroidTV开发的开发者,都会被各种焦点问题给折磨的不行.不管是学技术还是学习其他知识,都要学习和理解其中原理,碰到问题我们才能得心应手.下面就来探一探Android的焦点分 ...
- Android TV 焦点分发原理解析
前言 相信很多刚接触AndroidTV开发的开发者,都会被各种焦点问题给折磨的不行.不管是学技术还是学习其他知识,都要学习和理解其中原理,碰到问题我们才能得心应手.下面就来探一探Android的焦点分 ...
- android遥控器适配
前言android遥控器的适配主要是在用在开发网络机顶盒上,虽然现在出现了用手机去控制电视,但大部分仍然是使用便宜稳定的红外线遥控器. 步骤1遥控器以一定频率的形式发出红外线(超出人类可视范围,很多物 ...
- android遥控器管理,Android 遥控器适配
在针对会议平板或大型显示设备(Android系统)中,大部分情况下需要通过鼠标.键盘或者遥控器来控制显示界面,以弥补因设备尺寸等因素导致的无法完全触摸整个设备屏幕的缺陷.因此,以上情况下的解决方案之一 ...
- android tv 焦点居中自定义listview控件的实现
因为项目需要,花了一天做了一个自定义listview,和google官方效果图上的控件类似,效果图: 即焦点始终在屏幕中央,焦点选中的item被放大,且颜色被改变,遥控器可以指挥listview上下滚 ...
- Android音频焦点申请处理
为了便于理解,我们以android的8.0以前的版本为例,8.0以后有一定改动,但是基本思路一样. 关于管理音频焦点(8.0以前和更高版本)的官方文档:https://developer.androi ...
- android释放焦点_Android videoview抢占焦点的处理方法
问题描述: android 机顶盒应用: 应用程序主界面(MainActivity)只有两个控件,一个videoview和一个button. 视频框设置无焦点,按键有焦点. 首次进入应用时焦点正常,聚 ...
- android遥控器按键传输流程,android 海思平台遥控器按键映射流程
1.红外遥控器映射 key.xml文件是遥控器键值与linux标准键值之前的映射, /device/hisilicon/bigfish/system/ir_user/key_pars/key.xml ...
- android 自定义控件 焦点,android中设置控件获得焦点
android中,要使控件获得焦点,需要先setFocus,再requestFocus. 以Button为例: btn.setFocusable(true); btn.setFocusableInTo ...
最新文章
- 国产操作系统可以基于BSD开发再闭源吗?
- python-如何解决python执行pip install 命令的时候出现 File“<stdin>“,line 1 pip install XXX的问题
- hsi转rgb公式matlab,rgb与hsi模型转换matlab程序
- 亲爱的,热爱的~CTF
- 应用中心最佳实践之——使用应用组完成多集群一键部署
- HALCON示例程序measure_grid.hdev使用XLD分割键盘轮廓
- switch java 语法_Java_基础语法之switch语句
- 在PTA中c语言中求连续因子,团体程序设计天梯赛-练习集L1-006. *连续因子
- 微软官网方法制作win10u盘启动
- 论文 计算机教育教学能力,高校计算机教师应具备的能力和培养的方向
- 【直击DTCC】宝存CEO阳学仕:如何保障SSD的IO确定性?
- 路由器AP、路由、桥接模式有什么区别【详细介绍】
- 13个可以为网站创建360度全景视图的工具
- ubuntu 登录界面卡死解决方法
- QQ文件及文件夹的一些知识
- 【超融合】818超融合发展经历了哪几个阶段!
- [攻略][Python]给array类型的数据添加方括号、去掉方括号
- 2022年高处安装、维护、拆除新版试题及高处安装、维护、拆除考试试卷
- SQLyog下载、安装和破解(亲测永久有效)
- TypeScript中type和interface区别