在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 遥控器焦点相关推荐

  1. android 焦点分发,Android TV 焦点分发原理解析

    前言 相信很多刚接触AndroidTV开发的开发者,都会被各种焦点问题给折磨的不行.不管是学技术还是学习其他知识,都要学习和理解其中原理,碰到问题我们才能得心应手.下面就来探一探Android的焦点分 ...

  2. Android TV 焦点分发原理解析

    前言 相信很多刚接触AndroidTV开发的开发者,都会被各种焦点问题给折磨的不行.不管是学技术还是学习其他知识,都要学习和理解其中原理,碰到问题我们才能得心应手.下面就来探一探Android的焦点分 ...

  3. android遥控器适配

    前言android遥控器的适配主要是在用在开发网络机顶盒上,虽然现在出现了用手机去控制电视,但大部分仍然是使用便宜稳定的红外线遥控器. 步骤1遥控器以一定频率的形式发出红外线(超出人类可视范围,很多物 ...

  4. android遥控器管理,Android 遥控器适配

    在针对会议平板或大型显示设备(Android系统)中,大部分情况下需要通过鼠标.键盘或者遥控器来控制显示界面,以弥补因设备尺寸等因素导致的无法完全触摸整个设备屏幕的缺陷.因此,以上情况下的解决方案之一 ...

  5. android tv 焦点居中自定义listview控件的实现

    因为项目需要,花了一天做了一个自定义listview,和google官方效果图上的控件类似,效果图: 即焦点始终在屏幕中央,焦点选中的item被放大,且颜色被改变,遥控器可以指挥listview上下滚 ...

  6. Android音频焦点申请处理

    为了便于理解,我们以android的8.0以前的版本为例,8.0以后有一定改动,但是基本思路一样. 关于管理音频焦点(8.0以前和更高版本)的官方文档:https://developer.androi ...

  7. android释放焦点_Android videoview抢占焦点的处理方法

    问题描述: android 机顶盒应用: 应用程序主界面(MainActivity)只有两个控件,一个videoview和一个button. 视频框设置无焦点,按键有焦点. 首次进入应用时焦点正常,聚 ...

  8. android遥控器按键传输流程,android 海思平台遥控器按键映射流程

    1.红外遥控器映射 key.xml文件是遥控器键值与linux标准键值之前的映射, /device/hisilicon/bigfish/system/ir_user/key_pars/key.xml ...

  9. android 自定义控件 焦点,android中设置控件获得焦点

    android中,要使控件获得焦点,需要先setFocus,再requestFocus. 以Button为例: btn.setFocusable(true); btn.setFocusableInTo ...

最新文章

  1. 国产操作系统可以基于BSD开发再闭源吗?
  2. python-如何解决python执行pip install 命令的时候出现 File“<stdin>“,line 1 pip install XXX的问题
  3. hsi转rgb公式matlab,rgb与hsi模型转换matlab程序
  4. 亲爱的,热爱的~CTF
  5. 应用中心最佳实践之——使用应用组完成多集群一键部署
  6. HALCON示例程序measure_grid.hdev使用XLD分割键盘轮廓
  7. switch java 语法_Java_基础语法之switch语句
  8. 在PTA中c语言中求连续因子,团体程序设计天梯赛-练习集L1-006. *连续因子
  9. 微软官网方法制作win10u盘启动
  10. 论文 计算机教育教学能力,高校计算机教师应具备的能力和培养的方向
  11. 【直击DTCC】宝存CEO阳学仕:如何保障SSD的IO确定性?
  12. 路由器AP、路由、桥接模式有什么区别【详细介绍】
  13. 13个可以为网站创建360度全景视图的工具
  14. ubuntu 登录界面卡死解决方法
  15. QQ文件及文件夹的一些知识
  16. 【超融合】818超融合发展经历了哪几个阶段!
  17. [攻略][Python]给array类型的数据添加方括号、去掉方括号
  18. 2022年高处安装、维护、拆除新版试题及高处安装、维护、拆除考试试卷
  19. SQLyog下载、安装和破解(亲测永久有效)
  20. TypeScript中type和interface区别

热门文章

  1. php socket 编程
  2. 学习 nginx 你需要知道的内容
  3. 今日揭秘:在淘宝上,如何让宝贝秒卡首屏?
  4. QQ大数据:今年中秋节,90后最想家
  5. 在spring官网上下载spring的jar包及API文档
  6. PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能
  7. 易语言修改服务器数据库连接,sql开发管理软件 易语言 易语言连接sql数据库
  8. 怎么给游戏配音?快看这篇游戏配音教程吧
  9. 用户需要使用某一个文件时 告诉计算机,计算机应用基础复习理论题
  10. Charles抓包使用教程(window端)