前言
在Tv开发过程中,会对遥控器焦点做相应的处理,TV端因为在处理触控操作的同时还要处理遥控操作,所以焦点处理、控制以及按键监听是其主要特点。
焦点处理
设置可获取焦点
布局中需要设置某个控件可获取焦点需要加上:

android:focusable="true"代码中:view.setFocusable(true);焦点监听view.setOnFocusChangeListener(new View.OnFocusChangeListener() {    @Override    public void onFocusChange(View v, boolean hasFocus) {        if (hasFocus) {            // 获取焦点时操作,常见的有放大、加边框等        } else {            // 失去焦点时操作,恢复默认状态        }    }});

在已知其他View ID的情况下设置下一个焦点:

布局文件中: android:nextFocusDown="@id/button1" android:nextFocusUp="@id/button2" android:nextFocusLeft="@id/button3" android:nextFocusRight="@id/button4"代码中: view.setNextFocusDownId(R.id.button1); view.setNextFocusUpId(R.id.button2); view.setNextFocusLeftId(R.id.button3); view.setNextFocusRightId(R.id.button4);

常用的遥控器按键:

KeyEvent.KEYCODE_BACK // 返回键KeyEvent.KEYCODE_DPAD_DOWN // 下键KeyEvent.KEYCODE_DPAD_UP // 上键KeyEvent.KEYCODE_DPAD_LEFT // 左键KeyEvent.KEYCODE_DPAD_RIGHT // 右键KeyEvent.KEYCODE_MENU // 菜单键KeyEvent.KEYCODE_SETTINGS // 设置键代码中处理: @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        switch (keyCode) {            case KeyEvent.KEYCODE_ENTER:                break;            case KeyEvent.KEYCODE_DPAD_CENTER:                break;            case KeyEvent.KEYCODE_DPAD_DOWN:                break;            case KeyEvent.KEYCODE_DPAD_LEFT:                common_txt.requestFocus();                break;            case KeyEvent.KEYCODE_DPAD_RIGHT:                if (mFocusListener != null) mFocusListener.rightFocus();                break;            case KeyEvent.KEYCODE_DPAD_UP:                break;            default:                common_txt.requestFocus();        }        return super.onKeyDown(keyCode, event);    }

更多相关文章

  1. Android(安卓)源码分析 - 事件分发机制
  2. Android使用KeyStore对数据进行加密的示例代码
  3. 《第一行代码--android》笔记·第一章:认识资源
  4. Android(安卓)实现个性的ViewPager切换动画 实战PageTransformer
  5. 解决:android Listview 拖动时背景为黑色问题
  6. Android开发中的MVC
  7. Android微信登录、分享功能实例
  8. Android支持USB摄像头
  9. Android平台值得关注的开源项目

随机推荐

  1. 加班做的报表还被老板嫌弃?是因为你不会用
  2. 视频剪辑必备技能:给小视频增加滚动字幕
  3. Python操作各种数据库
  4. 激动人心!Ceph新长支持稳定版本Luminous(12
  5. Docker-LinuxKit搭建及使用场景分析
  6. ssh隧道的特别使用--ssh跳板机的实现
  7. 架构学习之路——高可用高并发系统设计原
  8. sd-wan的时代也慢慢崛起了
  9. 开源APM工具PinPoint部署方法
  10. 虚拟网络:OpenFlow,与OpenStack集成,边缘虚