一种TV(Android系统)通用焦点框的实现

本文介绍了在Android电视应用中实现通用焦点框的方法,包括焦点变化监听、添加焦点层以及详细阐述如何绘制焦点框,提升电视端交互体验。
摘要由CSDN通过智能技术生成
在电视的交互设计中,通常需要一个焦点框来指示当前选中了哪个控件,如果每个控件都通过给background设置selector的方式,实现焦点框效果,需要写很多xml文件。
所以这里偷懒实现一个通用的焦点框,实现自动跟随焦点变化,实现焦点框指示。原理如下图。
原理就是在Activity的setContentView方法导入的View(上图蓝色)上层再添加一层充满屏幕的View(半透明黄色)。这层View用来绘制焦点框。当真实view的焦点发生变化,获取真实获得焦点的view的位置,把焦点框绘制在它的上边。这样就实现了个通用焦点框。
完成上述操作需要解决以下几个问题
1.如何监听真实view的焦点变化
2.如何把蒙版层添加到原始view的上层
3.如何得到获得到焦点真实view的位置
4.把焦点框绘制在真实view的正上方

焦点变化监听

需要知道view树焦点状态的变化
Android中提供了ViewTreeObserver来监听View树中一系列状态变化
看下ViewTreeObserver的解释
这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值