Android TV开发经验总结---初识TV开发

Android Studio TV开发教程(一)处理电视硬件 处理电视硬件电视硬件与其他Android设备有很大不同。 电视不包括其他Android设备上的某些硬件功能,例如触摸屏,相机和GPS接收器。 电视也完全依赖辅助硬件设备。 为了让用户与电视应用程序交互,他们必须使用遥控器或游戏手柄。 当您构建电视应用程序时,您必须仔细考虑在硬件上运行的硬件限制和要求。本课程介绍如何检查您的应用是否在电视上运行,以及如何处理不支持的硬件功能。 要了解各种输入方法,请... 阅读详情

        之前一直从事手机APP应用开发,由于工作的需要转入TV电视端的开发,初次接触确实有点懵逼,在TV开发过程中的处理思路跟手机还是有很大区别的,接下来将讲述下TV开发过程的经验,与大家一起分享共同学习。

       刚接触TV开发,需要我们转变下思路,在TV开发中没有以前我们手机端的什么 dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 事件来分发,而需要使用dispatchKeyEvent、onKeyDown、onKeyLisenter 等事件来分发处理焦点问题,而且TV端焦点没有什么好办法可以全局控制,需要我们自己来想办法规定焦点走向,可能一个没处理好,就一脸懵逼了,焦点为啥跑的不见了,焦点为啥跑那里去了等等问题。 接下来我们就说说在TV端开发的基础知识

   Android TV app开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。机顶盒应用不同于手机应用,因为多数是没有触摸屏的,只能靠遥控器,所以要保持一个焦点的位置,让用户知道当前操作作用的对象. 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果. 边缘移动时,会出现焦点丢失的状况. 有时想直接定位到某个位置上. 

        android提供了一些焦点相关的属性,在现有的框架层下通过设置View的属性来获得焦点

        android:focusable:设置一个控件能否获得焦点
        android:background:设置在作为背景的drawable
        android:nextFocusDown:定义下一个获得焦点的控件当按下键时
        android:nextFocusUp:定义下一个获得焦点的控件当按上键时
        android:nextFocusLeft:定义下一个获得焦点的控件当按左键时
        android:nextFocusRight:定义下一个获得焦点的控件当按右键时
        <requestFocus/>:强制设置一个焦点到指定的view或它的一个子类,前提是android:focusable为true能够获得焦点

         下面列出两种方法处理焦点问题

   第一种方法:

   采用Android自带的直接控制焦点上下左右的方法。这种方法的前提是必须知道每个view的id,因此在进行布局时有必须要通过view.setId(…)指定view的特定ID,然后通过view.setNextLeftView(…)等四个方法控制该view的上下左右移动后所到达的view。然而这种方法只适用于前提就设置好ID的场景,不适合动态布局的场景

   第二种方法:

在一些比较复杂的Layout中,特别是涉及到在View的焦点变化的过程中还要控制view的背景以及字体颜色变化等。必须对每个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也改变获取焦点背景  
                    }
  然后使用Key事件分发来确定焦点移动方向,一般可以使用onKeyDown事件进行处理

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; 
                     }
       }
    接下来讲讲TV开发中需要了解的KeyCode 可以参考下 Android常用的物理按键及其触发事件此博客讲解的按钮事件

 常用的按键Code有 

  KEYCODE_MENU 菜单键

  1. * 方向键  
  2.  * KEYCODE_DPAD_CENTER 
  3.  * KEYCODE_DPAD_UP  
  4.  * KEYCODE_DPAD_DOWN  
  5.  * KEYCODE_DPAD_LEFT  
  6.  * KEYCODE_DPAD_RIGHT 

      在按键过程中 按下和松开的Action主要是ACTION_DOWN、ACTION_UP  事件分发和处理是在 ACTION_DOWN 中处理

此处需要特别说明的是    View.setFocusable(true);   改变控件是否可以获得焦点,然而同时会触发 setOnFocusChangeListener事件 

   接下来将会讲解在TV开发中所涉及到的控件使用技巧

             

AndroidTV开发教程(1) 直接开始我们的第一个程序 创建一个AndroidTV应用程序 1.打开AndroidStudio New Project 因为是第一个项目,我们选择Add No Activity,然后点击Next进入下一步。 在这里输入自己的项目名称,还有选择API level,然后点击finish。 好了,现在我们的第一个项目已经建立好了,继续丰富内容。 2.添加一个Activity New→Activity→Android TV activity,勾择... 阅读详情

相关推荐

安卓TV开发(前言)— AndroidTV模拟器初识与搭建

目前市场已经有很多巨头企业涉足物联网和智能家居领域,包括小米,乐视,华为等已经相继进军,并以开发出相应的产品。乐视智能电视,小米手环,手表,电视盒子,华为智能路由器,这些设备是怎么运行是其原理,也就是安卓+嵌入式+网络通讯,接下来介绍下模拟器搭建。

Tamic (大白) 2万+

2022年Android TV应用项目开发实战

课程简介:本套教程是以一个TV应用的项目开发实战,教大家如何使用EBoxUI库(关于什么是EBoxUI库请看下面)。开发一个完整用于机顶盒也就是TV上的安卓应用,课程大约有100节左右.项目名称叫香茶TV。是一个影视播放类型的应用。总体分为5大页面。分别是:首页、列表页、记录页、搜索页、详情页。每个页面又以不同的功能功分出更多的子页面。 EBoxUI库:EBoxUI是本人在做TV应用开发的这四五年时间里自已编写的一套用于TV应用上的高效UI库,这套UI库已经用在好几个线上项目中,并且运行良好。最低支持系统版本是Android4.4 使用技术栈:Java1.8、RxJava2、OkHttp、Retrofit、Glide、Butterknife、IJKplayer、MVP架构 开发工具:AndroidStudio 2022.2.1 项目截图:              

安卓TV开发(三) 移动智能设备之实现主流TV电视盒子焦点可控UI

前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家居,以及可穿戴设备的大量使用,但是这些设备上的开发并不是和传统手机开发一样,特别是焦点控制和用户操作TV上有很大的区别,本系列博文主要用TV播放器的实现去了解下在智能设备上的开发的相关技术。本次实现主流的九宫格UI,并由遥控器方向键控制view焦点移动,到达边缘进行翻页效果。

Tamic (大白) 9360

Android Studio开发Android TV

在“Add an Activity to Mobile”(在移动设备上添加一个Activity)页面上,选择“TV”选项卡,然后选择你要创建的Activity类型,比如“Leanback Activity”(Leanback活动)或“Fullscreen Activity”(全屏活动)。你可以通过打开Java文件和XML布局文件来编辑你的代码,并通过点击绿色的“Run”按钮来运行和测试你的应用程序。在弹出的对话框中,填写你的应用程序的名称、包名和所需的最低Android API级别。

牛肉胡辣汤 3756

安卓电视机(此处用小米电视机)远程连接电脑

本文章关于远程这块!简单实用教程,自己写的不喜勿喷!(并不一定适用所有的朋友哦,我这是公司局域网使用的) 前提:你的电脑已经做好的可以远程的设置!!! 首先我的先在电脑上下载一款软件,叫做“Remote Desktop”,它长啥样呢!当当当当~,就是它啦→,这是已经安装好的图标啦!我们源文件应该是一个apk后缀的安装包。准备好上面说的安装包后,下面开始说如何运用起来: 1,将安装包拷入U盘 2,U盘插到我们的小米电视机上(就是可以安装安卓应用的电视机啦),找到安装包,这是我下载的安装包文件名字:,直

lh0324的博客 9037

基于Android电视机的ZigBee智能家居系统设计

智能家居是利用先进的计算机技术,嵌入式系统和网络通信技术,将家庭中的各种设备(如照明系统、环境监控、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984年真正的智能建筑出现以后,国外已经有将近30年的研究历史,而国内在这方面的研究就相对较晚,从2003年才逐步的应用于高端市场,而且标准不一。由于智能家居的系统具有安全、方便、高效、快捷、智能化等诸多的优点,从而使智能家居的开发建设成为2

liqingkk的专栏 1855

android TV 开发规范

Android TV开发规范 一.Android TV概述 Android TV应用使用与手机和平板电脑相同的架构,这就意味着我们可以根据已经了解的有关构建Android应用的方法去构建新的电视应用程序,或者将现有的应用程序拓展到电视设备上去运行。 二.创建电视应用 Android提供了丰富的用户体验,针对大屏幕的设备(如Android TV)上运行的应用进行了优化。TV的用交互与平板和手机设备有...

android 系统定制开发那些事 1万+

Android Studio TV开发教程:处理电视硬件

您可以在Android Studio中创建一个电视应用程序项目,并使用上述代码示例来处理遥控器输入、管理焦点和导航,并调整布局和用户界面以适应电视设备。您还可以使用Android的相关API来处理电视硬件功能,如音量控制、频道切换和外部设备连接。首先,我们需要在Android Studio中创建一个电视应用程序项目。完成后,Android Studio将为您创建一个电视应用程序的基本结构。在本教程中,我们将探讨如何在Android Studio中开发针对电视设备的应用程序,并处理与电视硬件相关的问题。

ByteWhiz的博客 956

安卓TV开发《1》TV入门

前言 近期换了一份工作,入职那天一看整个办公室好大气,好多智能电视,估计有50寸,顿时心里明白了我一个安卓开发肯定是要干TV开发了。还好无论TV开发、安卓wear、安卓车载都是和安卓手机开发差不多。于是乎看看官方给的TV开发文档,瞅瞅差异,搞起来。所以,以下有关TV的文档就按照官方文档搞一遍。顺带着自己的一点理解整理下。 一、官方文档地址 传送门 二、安卓TV概览 如果您有 Androi...

dev晴天的博客 5681

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

DrawCall、Batches、SetPassCalls的区别和联系

一、DrawCall、Batches、SetPassCalls的基本理解 我们先从图形渲染的角度对这些概念做一个基本的理解。 1.1 DrawCall DrawCall实际上指的是一次图形渲染接口的调用,比如OpenGL的glDrawArrays或者glDrawElements的一次调用,以及DirectX的DrawPrimitive或者DrawIndexedPrimitive。因此,DrawCall可以简单理解为一次渲染指令调用。 1.2 Batches 我们知道,在调用DrawCall之前,需要设置渲染

远行's Blog 6378

安卓系统的电视机_再送出一款智能电视、电视盒子、安卓手机通用TV直播软件...

正文共:1637字22图预估阅读时间:5分钟写在前面:★ 这里全部都是破解后的免费白漂版本;★ 小编平常自己收集到不错的分享出来;★ 大家需要什么软件请直接在下面留言;★ 看免费电视电影点文末的“阅读原文”。分享缘起之前分享过好几款TV盒子电视台直播软件。今天再分享一款~软件安装包软件安装包的源文件存放在后台了。已破解永久免费,放心使用。按文章末尾的“提取编码”,回复...

weixin_39633807的博客 3104

ZYNQ千兆网UDP通信实战:从Vivado配置到LWIP优化全流程(附避坑指南)

本文详细介绍了在ZYNQ平台上实现千兆以太网UDP通信的全流程,包括Vivado硬件配置、LWIP协议栈优化及实战代码示例。通过关键参数调整和性能优化,系统吞吐量可提升至850Mbps以上,适用于高速网络通信场景。

weixin_29161785的博客 230

【TV】智能电视机四大操作系统介绍

智能电视机四大操作系统介绍 近年来智能电视机四大操作系统介绍随着电视机技术的发展,电视机智能化的趋势愈加明显,步伐也越来越快,智能电视机不仅在外形、画质等方面拥有独特的优势,而且能为用户提供丰富的功能。因为采用了智能化操作系统,那么目前市场有哪些主流的智能电视操作系统呢?谁更适合普通用户使用呢?接着往下看。   主流智能电视操作系统一:安卓操作系统(主流)   目前,Andr

产业互联网&消费类电子 1万+

AUTOSAR EcuM模块介绍

AUTOSAR EcuM概述 AUTOSAR EcuM全称是Autosar ECU State Manager,位于Autosar BSW中System Service模块中,是一个独立于硬件的模块。 其主要作用是管理ECU上下电启动的状态,具体为: 初始化启动操作系统所需要的BSW(Basic Software)模块 为睡眠阶段和随后的唤醒完成微控制器的配置准备 管理ECU上的所有唤醒事件(EcuM通过唤醒验证协议验证已发生的唤醒,区分真实的唤醒事件,防止误唤醒) EcuM支持的特性列表 EcuM具有

酒无忧的博客 2995

i.MX6ULL系统移植 | 使用busybox制作根文件系统(1.29.0)

一. 下载BusyBox BusyBox是一个继承了大量Linux命令核工具的软件,像常用的ls、cp、mv、ifconfig等命令。一般下载BusyBox的源码,然后配置Busybox,选择自己想要的功能,最后编译即可。 BusyBox在官方可以直接下载:https://www.busybox.net/。目前最新是1.35.0,这里我使用1.29.0版本。 axel https://www.busybox.net/downloads/busybox-1.29.0.tar.bz2 下载之后解压: tar

Mculover666的博客(嵌入式) 1145

【Android TV 开发】安卓电视调试 ( 开启网络远程调试 )

一、硬件环境准备、 二、开启开发者模式、 二、查询 Android 电视局域网 IP 地址、 四、开启远程连接、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2万+

基于YOLOv8的MVTec AD缺陷检测系统设计与实现

速度快,精度高;支持 anchor-free 架构;支持实例分割和图像分类;模块化代码,易于部署与改进;完美兼容 ONNX、TensorRT 等推理框架;官方支持多平台训练和推理(CPU/GPU)。YOLOv8 是工业视觉检测落地非常理想的选择。MVTec AD(Anomaly Detection)数据集包括15类工业对象,每个对象包括多个子类缺陷(例如 “scratch”, “crack”, “hole”)及正常图像。类别缺陷子类bottlecablecapsule。

YOLO 931

智能电视机安装App

每年的12月18日是世界电视机日,电视机诞生于1925年,最初是电子机械式电视机;到了1933年,诞生CRT电视(黑白电视),它只有黑色或白色,看任何物品都是黑色或者白色。又过了20年,1953年彩色电视机也问世了,看蓝天不是灰色而是蓝色,颜色更多,其射线管的寿命比较长约为15年,体验更好。到了1981年,液晶电视机横空出世,它色彩艳丽,缺点是其发光灯泡的寿命比较短约5年左右。到了2009年,电视行业开始使用Android系统,电视机步入智能化时代。高清、大屏幕、轻薄、娱乐化、互动性等特征,成了智能化的标配

sanqima的专栏 1万+

Nacos 从困惑到蒙圈(9)Nacos 适配 达梦数据库【最新版】

介绍Nacos适配达梦数据库的详细步骤,包括对最新版本的支持改造。

甘蓝的专栏 1376

2小时用Trae搭建全功能CMS系统

在前文中,我们使用Trae从零搭建了一个用户文档站点,仅用不到2小时就实现了用户注册登录和文档的增删改查功能,且无需编写任何代码。本节我们将在此基础上,构建一个CMS后台管理系统,包含用户管理和文档管理两大功能模块。

2501_92019101的博客 540

【亲测免费】 TV-Bro浏览器:专为电视遥控器优化的安卓浏览器指南

**TV-Bro** 是一款专为安卓智能电视设计的简易网页浏览器,它特别适配于使用电视遥控器进行操作。这款浏览器具备一系列用户友好的特性,包括对电视遥控器的良好支持、标签页浏览、书签管理、语音搜索、用户代理切换以及内置下载管理器等。它利用Android自带的Web渲染引擎(基于WebKit/Blink),确保了良好的兼容性和性能。项目可在[Google Play商店](https://play.g...

gitblog_00490的博客 3948

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android电视系统升级,如何对安卓电视机进行固件(软件)升级?

如果电视机已连接到网络,将电视机的“自动检查更新”或“自动软件下载”功能打开,则当有适用的新软件升级推送时,电视机会自动下载。对于2018至2020年发布的如下安卓电视机:• 2020 机型:X8000H, X8500H, X90xxH_X91H, X9500H , Z8H, A8H 系列• 2019 机型:A9G, Z9G, X9500G, X85xxG_U8G系列• 2018 机型:...

weixin_33318722的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TV-Bro电视浏览器:安卓智能电视网页浏览终极指南

TV-Bro是一款专为安卓智能电视设计的简易网页浏览器,特别针对电视遥控器操作进行了深度优化。这款浏览器让您能够在大屏幕上享受流畅的网页浏览体验,无需鼠标和键盘,仅凭电视遥控器即可轻松操作。 ## 核心功能特性 TV-Bro电视浏览器具备一系列实用功能,让您的电视上网体验更加便捷: - 完美适配电视遥控器操作,支持方向键和确认键导航 - 标签页浏览功能,支持同时打开多个网页 - 书签管理系统,

gitblog_00226的博客 2559

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

my-tv:装到安卓电视上、开屏就能看的电视直播软件

my-tv 是一款免费的安卓电视直播软件:APK 装好、打开就能看,不用注册账号,也没有会员费。当前版本 v2.1.0,全程遥控器操作、数字键直达选台、支持开机自启,适合安卓智能电视和电视盒子。📺 客厅的机顶盒会员一过期,开机先放三十秒广告,想看的直播反倒打不开。与其续费,不如把 my-tv 拷进电视——装完即播,日常操作全靠遥控器上那几个常用键。 ## 遥控器上到底按哪个键换台 不用研究

gitblog_01048的博客 812
上一篇: Android 嵌套ViewPager实现连贯双滑动
下一篇: Android TV开发经验总结---控件Gridview使用
Derbe
博客等级 码龄15年 27粉丝 6原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值