Android TV 鼠标空鼠焦点体验改善

2015-05-12 14:34

当前,公司的AndroidTV实现的空鼠效果体验非常不好,都是"直到点击某个视图控件,焦点才切换到那个控件上",比如:

1.鼠标光标在A上时,A取得焦点:

2.鼠标移到B时,仍然是A取得焦点:

3.单击鼠标左键时,焦点才从A转到B

更好的空鼠效果是空鼠箭头飘在哪个控件上,哪个控件就获得焦点,即上面第二步,当鼠标移到控件B的时候,就要将焦点切换到B,而不是等到点击B了才切换

在PC端一般对鼠标的焦点效果都是这样处理的,这样更符合用户鼠标操作的习惯。

因为Android的视图控件类都是继承自框架层,所以要想达到操作系统级别的统一效果,就要在系统的框架层基类中进行修改,实现上述效果的方法是在:

frameworks/base/core/java/android/view.java

在View.onHoverEvent(MotionEvent event)函数中为鼠标进出控件事件添加获取焦点的动作:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. if (isHoverable()) {  
  2.     switch (action) {  
  3.     case MotionEvent.ACTION_HOVER_ENTER:  
  4.         setHovered(true);  
  5.         Log.d(TAG, "case MotionEvent.ACTION_HOVER_ENTER");  
  6.         // add by duanliang to change focuse behavior of air mouse  
  7.         requestFocus();  
  8.         // duanliang modify end  
  9.         break;  
  10.     case MotionEvent.ACTION_HOVER_EXIT:  
  11.         setHovered(false);  
  12.         break;  
  13.     }  
  14. }  


 

添加上述代码后mm 编译出framework.jar ext.jar替换到TV即可。

实际操作,体验还是很不错的,尤其对焦点事件做了UI动画特效的时候。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值