您的位置:首页 > 移动开发 > Android开发

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

2015-09-10 10:25 766 查看
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
plaincopy





if (isHoverable()) {

switch (action) {

case MotionEvent.ACTION_HOVER_ENTER:

setHovered(true);

Log.d(TAG, "case MotionEvent.ACTION_HOVER_ENTER");

// add by duanliang to change focuse behavior of air mouse

requestFocus();

// duanliang modify end

break;

case MotionEvent.ACTION_HOVER_EXIT:

setHovered(false);

break;

}

}

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

实际操作,体验还是很不错的,尤其对焦点事件做了UI动画特效的时候。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: