AndroidTV开发是Metro风格首页自带焦点框+Tab切换

背景

还是新入职的公司,做tv端应用。这个月就要转正了,开心ing.
公司之前的应用都是直接走流化的跟一个走web页面的。入职后给我任务做个新的app,要纯终端的,
没办法,只能撸起袖子干了。

效果图

1695323-df62bc03af945f0e.gif
在这里插入图片描述

本来想用as自带的录的 发现盒子上捕获视频效果不理想。手机录完转换gif.也就那样 凑合看吧

思路

首先 一看就是tab + Fragment
再看 页面都差不多 肯定要抽个Base类
仔细看 就是处理焦点事件。电视端开发不比手机端。手机端可以想点哪里点哪里,电视端就得一个一个挪动。so 处理好焦点事件very important.
再想,肯定会有人一直长按以达到快速到某个地点的想法,但他完全不考虑盒子性能o不ok,他不考虑但咱们得考虑,so 需要加个重复判断 判断大于3次就延迟300ms触发按键。

 @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN){
            if(view_focus.isFocused())
                return true;

            if(event.getRepeatCount() > 3 ){//重复3次 开启按键延时
                if(!isKeyAble){//不响应按键
                    return true;
                }else {//响应按键
                    isKeyAble = false;
                    mHandler.sendEmptyMessageDelayed(CyberCode.RESET_KEYABLE,AppConstants.KEYDOWN_DELAY);
                }
            }

再仔细想,其实就这么多东西,其他看源码吧。没有什么很复杂的逻辑。
好了今天就到此结束,下面奉上写的简易demo;

demo地址

Github: (https://github.com/yudehai0204/TvFocusDemo)

喜欢点个star, 您的star是我最大的动力。

转载于:https://www.jianshu.com/p/be353ff44e83

猜你喜欢

转载自blog.csdn.net/weixin_33973609/article/details/91065572
今日推荐