android 焦点移动,Android TV 焦点上下左右移动
第一种方法:采用Android自带的直接控制焦点上下左右的方法。这种方法的前提是必须知道每个view的id,因此在进行布局时有必须要通过view.setId(...)指定view的特定ID,然后通过view.setNextLeftView(...)等四个方法控制该view的上下左右移动后所到达的view。
第二种方法是:在一些比较复杂的Layout中,特别是涉及到在View的焦点变化的过程中还要控制view的背景以及字体颜色变化等。比如:在有多个Layout(假设有Layout1, Layout2, Layout3,每个Layout中都有若干个ImageButton),当你从Layout1中的某个ImageButton 1.1中移动Layout2中ImageButton 2.1,此时ImageButton 1.1要标识为被选中,但是失去焦点,此时ImageButton 2.1是选中并且获取焦点,再从ImageButton 2.1移到ImageButton 3.1的过程中也是这种情况。对于这样一种情况,你必须对每个ImageButton 设置焦点捕获实际(setOnFocusChangeListener),在该监听事件中处理,(注:下面代码即兴写的,大概就是这个意思 --^_^-- )
ImageButton.setOnFocusChangeListener(){
public void onFocus(boolean Focus){
if( Focus ){
// ImageButton 2.1 获焦时, ImageButton 2.1 改变获取焦点背景, ImageButton 1.1也改变失去焦点背景
} else{
// // ImageButton 2.1 获焦时, ImageButton 2.1 改变失去焦点背景 , ImageButton 3.1也改变获取焦点背景
}
}
}
还有就是当你当前焦点移动到ImageButton 3.1上时,你有时需要知道此时Layout1、Layout2上是哪个ImageButton 被选中,因此你还必须设置三个ImageButton 变量(标识选中哪个布局中的那个ImageButton 对象),和三个int变量(标识选中哪个布局中的第几个)。
通过这些标识,你就可以很方便的了解到那个聚焦和哪个失去焦点了。
对于进行上下左右的控制,此时就要在OnKeyDown事件中进行捕获处理了。由于事先已经知道是哪个Layout中的哪个ImageButton被选中了,而此时你进行上下左右操作是在你被选中的View上进行操作的,因此在OnKeyDown中你只需先判断是哪个View被选中,然后根据按键事件来移动View(通过之前设置的int标识进行移动)(注:由于是即兴写的,可能部分代码有错误,这里只是描述这个意思,--^_^--)
假设Layout1中被选中的ImageButton为mFirstImgBtn, 序号为mFirstIndx;
Layout2中被选中的ImageButton为mSenondImgBtn, 序号为mSenondIndx;
Layout3中被选中的ImageButton为mThirdImgBtn, 序号为mThirdIndx;
每个Layout里面的ImageButton均在一个数组中,假设分别为:ImageButton mImgBtnArray1[], mImgBtnArray2[], mImgBtnArray3[],
当前被选中的view为 mSenondImgBtn
public void OnKeyDown(int keyCode, KeyEvent event){
if( event.KEYCODE_DROP_UP== keyCode ){ //如果按下的是上键
mImgBtnArray1[ThirdIndx ].requestFocus;
}
if( event.KEYCODE_DROP_DOWN == keyCode ){ //如果按下的是下键
mImgBtnArray3[ ThirdIndx ].requestFocus;
}
if( event.KEYCODE_DROP_LEFT == keyCode ){ //如果按下的是左键
mImgBtnArray1[ ThirdIndx-1 ].requestFocus;
}
if( event.KEYCODE_DROP_RIGHT == keyCode ){ //如果按下的是右键
mImgBtnArray1[ ThirdIndx+1 ].requestFocus;
}
}
而具体的获焦事件处理则在每个View的 OnFocusChangeListener 事件中处理。
android 焦点移动,Android TV 焦点上下左右移动相关推荐
- android点击灰色背景图片,android button按键失去焦点和点击后改变背景图片
android button按键得到焦点和点击后改变背景图片 我也接受android不久,今天来给同学们分享一下button得到焦点和点击后改变背景图片,其实很简单就是两个事件setOnFocusCh ...
- 【Android】android TV开发
google翻译[https://www.jianshu.com/p/c216849986ed] Ⅰ.开始使用电视应用 为了使您的应用在电视设备上获得成功,您必须设计出可以在10英尺远的地方轻松理解的 ...
- android汽车音频焦点方案,管理音频焦点 | Android 开发者 | Android Developers
两个或两个以上的 Android 应用可同时向同一输出流播放音频.系统会将所有音频流混合在一起.虽然这是一项出色的技术,但却会给用户带来很大的困扰.为了避免所有音乐应用同时播放,Android 引入了 ...
- 【Android】不依赖焦点和选中的TextView跑马灯
前言 继承TextView,并仿照源码修改而来,主要是取消了焦点和选中了判断,也不依赖文本的宽度. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民 ...
- hd live tv android,HD Live TV
Watch HD LIVE TV HD free on your Phone and Tablet from across the world. "HD Live TV" is u ...
- android webview 失去焦点,Android的webview失去焦点
情况:我有一个web输入字段在其中输入一个位置,有一个webview坐在它下面显示建议.该输入字段上有一个keyup处理程序和一个onchange处理程序.在keyup上有一条消息发出来调用api来填 ...
- android 视频预览,预览视频 | Android 开发者 | Android Developers
如需鼓励用户访问您的 TV 应用中的深层链接,预览视频是一种不错的方法. 预览内容可以是简短的视频剪辑,也可以是完整的电影预告片. 在创建预览时,请注意以下准则: 不要在预览中显示广告.如果您在客户端 ...
- kodi remote android,使用Android和iOS在Win10系统中设置Kodi Remote方法
Kodi是一个流行的流媒体应用程序,兼容windows操作系统和大多数其他设备,如Android,iOS,Linux等.Kodi是家庭娱乐的理想选择,基本上设计用于大屏幕.如果要在windows桌面上 ...
- 【Android】Android开源项目分类汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- Android开发——Android手机屏幕适配方案总结
0. 前言 Android的屏幕适配,即使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果,这个问题一直以来都是我们Android开发者不得不面对的问题.本文参考了很多前人的博 ...
最新文章
- C++ Windows进程管理
- matlab实现移动平均
- 华为新系统鸿蒙升级平板名单,华为鸿蒙系统升级名单正式确认!全面替换安卓:流畅度比肩iOS...
- 01 java 编程基础
- 学长毕业日记 :本科毕业论文写成博士论文的神操作
- Python标准库07 信号 (signal包,部分os包)
- 自定义DrawableTextView——实现TextView左上右下的点击监听
- 怎么在MyEclipse中快速配置spring框架-非web项目
- jQuery formValidator表单验证插件4.1.0 下载 演示 文档 可换肤 代码生成器
- 你真的了解用户吗?-浅谈《用户画像》的意义和方法
- 熟悉 ASP.NET MVC 类
- Vue「二」—— vue 基本使用 、vue 指令 、vue 过滤器
- 怎么编写java_程序员学编程第一步:手把手教你开发第一个Java程序
- 【Hadoop代码笔记】Hadoop作业提交之客户端作业提交
- Vscode ROS 环境搭建
- Hibernate映射组件属性(一)
- 什么是NVMe驱动器,您应该购买一个吗?
- 如何简单使用阿里巴巴矢量图标库!?
- 向日葵远程控制软件linux版安装
- 企业选择WMS仓库管理系统免费版是否更好
热门文章
- 虚拟机您的计算机无法启动,一键解决win10虚拟机无法启动的问题
- 第一次有人把小米9快充讲的这么简单明了qc3.0 usb pd
- PyTorch基础(六)-- optim模块
- 腾讯服务器微信分身,腾讯禁止微信双开应用,为什么还有那么多人“冒死”双开微信呢?...
- AHT20温湿度传感器数据采集
- 树莓派摄像头远程拍照及传输
- gitlab 屏蔽注册功能
- mysql安装出现change_mysql-5.msi安装出现change,repaire,or remove installation
- 计算机类绘图的文献,基于计算机CAD绘图探讨论文
- Java 批量下载图片并压缩为Zip