原文地址:http://blog.csdn.net/sk719887916 作者:skay
基于6.0最新的API 支持TV的框架

Android 6.0已完美支持TV开发,之前的5.0后RecyclerView已经很满足我们在Android TV上开发需求了,但是谷歌之后推出的新的support库包含了支持TV的API,主要有android.support.v17.leanback.widget下的一些关键类。

第一时间获取技术文章请关注微信公众号 开发者技术前线!

and**重点内容**roid.support.v17.leanback.widget

leanback.widget的设计主要是用MVP实现的
此核心接口类最重要角色就是ObjectAdapter。它类似于普通的适配器和RecyclerView适配器,但一般我们是把他们用来模块化开发的项目。具体包括 ArrayObjectAdapter和 CursorObjectAdapter,但开发人员可以自由的使用ObjectAdapter的子类来遍历任何现有的object。

一个 Presenter创建View从ObjectAdapter来将数据绑定上去。这是互补碎片ObjectAdapter对于现有的Android适配器类。要分离出一个Presenter的好处是,我们可以用它来 生成一个适配器的情况下让上层调用更方便。例如,一个用户View可以从在几个地方从获取数据源。每个展示的列表又是唯一的,而数据(Modle)只会对ObjectAdapter检索一次。

一个PresenterSelector决定Presenter是从ObjectAdapter一个指定的具体的数据对象。两种最常见的情况,1 当一个ObjectAdapter使用相同的视图类型(SinglePresenterSelector),并且当Presenter由Java类的Api(ClassPresenterSelector)时。我们可以实现任意逻辑的PresenterSelector。例如,如果一个ObjectAdapter的所有Item都具有相同的类型,但某些View是用在开发者的应用程序中的具体视图来展现的,该PresenterSelector可以选择对应的Presenter在检查每个元素的类型之前。
为了方便轻松看基本视图导航Modle的行数,其中每一个数据Modle可以在项目的水平列表中 也可以是垂直列表中。因此,轻松使用ObjectAdapters既用于限定水平的数据项,也可以是限定垂直的数据源。很简单检查定义的行的一些基本数据模型类:ListRow,它定义了与一个标题的行的抽象概念的ListRow,具体是使用使用ObjectAdapter展现项目的水平列表的数据的。对于ListRow相应的Presenter是 ListRowPresenter。提供其他类型的Row和相应RowPresenters的; 但是该应用程序可以定义的一个自定义的子Row和 RowPresenter。
谷歌的这种设计模式也验证了最新的MVP设计模式的便捷性。
具体主要的类描述如下

接口

BrowseFrameLayout.OnChildFocusListener 管理BrowseFrameLayout子焦点。
BrowseFrameLayout.OnFocusSearchListener BrowseFrameLayout选择集中视图当系统重点查找程序找不到以便集中精力。
FacetProvider 这是为了提供在物体上的可选功能(又名面),而不需要让子类或实现Java接口的对象的查询界面。
FacetProviderAdapter 通过实施可选接口RecyclerView.Adapter查询FacetProvider为内适配器给定类型。
FocusHighlight 接口突出具有焦点的项目。
FragmentAnimationProvider FragmentAnimationProvider片段的onCreateAnimator回调过程中提供用于动画。
ImeKeyMonitor 接口一个EditText子类,可以委托调用onKeyPreIme到一个注册的侦听器。
ImeKeyMonitor.ImeKeyListener 关键事件监听器接口截获编辑文本对象预IME。
OnActionClickedListener 使用该接口时,接到通知的行动被点击。
OnChildLaidOutListener 接口时,这个ViewGroup中的孩子已经奠定了接收通知。
OnChildSelectedListener 此接口已过时。使用OnChildViewHolderSelectedListener
OnItemViewClickedListener 接口点击一个项目视图支架时收到通知。
OnItemViewSelectedListener 接口当行或项目被选中接收通知。
SearchBar.SearchBarListener 接口接收的搜索查询更改的通知。
SearchEditText.OnKeyboardDismissListener 接口当键盘被驳回收到通知。
SpeechRecognitionCallback 接口,用于接收通知,语音识别应启动。
ViewHolderTask 接口上ViewHolder计划任务。

AbstractDetailsDescriptionPresenter 一个抽象的演示用于呈现一个项目的详细描述。
AbstractDetailsDescriptionPresenter.ViewHolder 该ViewHolder为AbstractDetailsDescriptionPresenter。
行动 动作包含文本,一个可选的图像和可选ID中的一个或两行。
ArrayObjectAdapter 一个ObjectAdapter与实现的ArrayList。
BaseCardView A卡式布局,响应某种状态的变化。
BaseCardView.LayoutParams 与BaseCardView相关的每个子布局的信息。
BrowseFrameLayout 一个ViewGroup中管理重叠视图之间焦点行为。
ClassPresenterSelector 一个ClassPresenterSelector选择演示基于项目的Java类。
ControlButtonPresenterSelector 显示一级和二级控制的PlaybackControlsRow。
CursorObjectAdapter 一个ObjectAdapter与实现光标。
DetailsOverviewLogoPresenter 主讲人是负责创建的ImageView并绑定到DetailsOverviewRow。
DetailsOverviewLogoPresenter.ViewHolder ViewHolder为DetailsOverviewRow的标志视图。
DetailsOverviewRow 概述行的细节片段。
DetailsOverviewRow.Listener 侦听DetailsOverviewRow的变化。
DetailsOverviewRowPresenter 此类已废弃。使用FullWidthDetailsOverviewRowPresenter
DetailsOverviewRowPresenter.ViewHolder 一个ViewHolder为DetailsOverviewRow。
FocusHighlightHelper 设置项目时获得焦点的突出表现。
FullWidthDetailsOverviewRowPresenter 呈现一个DetailsOverviewRow以显示项目的概述。
FullWidthDetailsOverviewRowPresenter.Listener 听众对ViewHolder事件。
FullWidthDetailsOverviewRowPresenter.ViewHolder 一个ViewHolder为DetailsOverviewRow。
FullWidthDetailsOverviewRowPresenter.ViewHolder.DetailsOverviewRowListener
FullWidthDetailsOverviewSharedElementHelper 辅助类来辅助延迟所创造查看共享的元素活动过渡 FullWidthDetailsOverviewRowPresenter。
GuidanceStylist GuidanceStylist是一个内使用GuidedStepFragment 以显示在该步骤所要求的决定(S)的上下文信息。
GuidanceStylist.Guidance 代表对上下文信息的数据类GuidedStepFragment。
GuidedAction 数据类代表中的一个动作GuidedStepFragment。
GuidedAction.Builder 构建一个GuidedAction对象。
GuidedAction.BuilderBase

TV_FrameWork

.主要包含

  1. UI
  2. 事件处理
  3. 视频播放

效果如下:

源码下载:https://github.com/NeglectedByBoss/TV_FrameWork
参考资料:http://developer.android.com/reference/android/support/v17/leanback/widget/package-summary.html

Aandroid TV 基于Leanback支持最新MD设计的TV开发框架相关推荐

  1. android tv 国内使用,Android TV:使用Leanback写国内UI风格的TV应用

    图一 LeanbackTvSample_1.png 背景 现在国内主流的TV端视频播放软件.TV端桌面的UI风格都差不多了.这个"差不多"不仅是说版式排布"差不多&quo ...

  2. 软件接口设计_基于PREEvision的AUTOSAR Adaptive设计——上篇

    AUTOSAR Adaptive概述 2003年,汽车行业的高端玩家们发起了汽车嵌入式系统软件架构标准化项目--AUTOSAR(汽车开放系统架构).2017年,为适应汽车的发展趋势(智能化.网联化等) ...

  3. TICA 2019 基于人工智能的模型驱动测试设计

    阿里QA导读:面对被测系统发生重大的变化,过去的资产如何维护?如何通过人工智能驱动,设计测试自动化解决方案?本次分享将从模型驱动设计,AI如何优化测试用例等维度,介绍一种AI在软件测试领域的实践方案. ...

  4. [开题报告+任务书+论文+PPT+源码]基于安卓的个人图书馆设计[包运行成功]

    毕 业 设 计(论 文)开 题 报 告 1.结合毕业设计(论文)课题情况,根据所查阅的文献资料,每人撰写2000字左右的文献综述: 文 献 综 述一.系统开发的背景及意义随着信息技术地飞速发展,信息量 ...

  5. Linux下基于GTK人脸识别界面设计

    Linux下基于GTK人脸识别界面设计 1.人脸识别简介   人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术.用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸, ...

  6. html5画图论文结束语,毕业论文基于HTML5_Canvas的画图板设计与实现9喜欢就下吧(全文完整版)...

    <(毕业论文)基于HTML5_Canvas的画图板设计与实现.doc>由会员分享,可免费在线阅读全文,更多与<(毕业论文)基于HTML5_Canvas的画图板设计与实现(9)(喜欢就 ...

  7. python基于PHP旅游网站的设计与开发

    在经济高速发展的现在,人们的工作越来越繁重,生活节奏越来越快,生活工作压力也越来越大.反而留给自己休息,享受旅游生活的时间越来越少,缺少对周边旅游信息的了解,无法与兴趣一致的户外旅友进行交流.这则会导 ...

  8. PIC以太网开发板——基于微芯最新ENC28J60以太网控制器

    PIC以太网开发板--基于微芯最新ENC28J60以太网控制器                       PIC以太网开发板--基于微芯最新ENC28J60以太网控制器 导航栏 ENC28J60芯片 ...

  9. 基于Labview的信号发生器的设计 [转】

    基于Labview的信号发生器的设计 目录 1 .引    言... 2 1.1 Labview开发平台... 4 1.1.1  程序前面板... 5 1.1.2  框图程序... 5 1.1.3  ...

最新文章

  1. java判断是否为数组_JS如何判断是否是数组?
  2. mysql galaxy_优化mysql
  3. UWP 文件读写API
  4. Java 容器之Hashset 详解.
  5. python treading模块
  6. 云计算的发展及应用--演讲用PPT
  7. java reverse_Java Integer类reverse()方法与示例
  8. 城市运行一网统管_全国率先!“一屏观天下、一网管全城”,临港城市运行“一网统管”平台启动建设...
  9. 创业编程七个错误认识
  10. 用FPGA实现视频中物体边缘二值化
  11. 002..NET MVC实现自己的TempBag
  12. electronjs设置宽度_Js操作DOM元素及获取浏览器高宽的简单方法
  13. 计算机office高级应用都考啥,office高级应用考什么 评分标准是什么
  14. 用c#查询各快递物流信息
  15. 不知道这些你就OUT了,2019年最常见又实用的Android开发面试题
  16. 优化jsj脚本,防止浏览器卡死
  17. easyExcel工具类使用
  18. 正定方言—正定少占鱼欢迎您,快速做个正定人
  19. 高数 | 洛必达法则的隐藏细节、广义洛必达法则(分母无穷直接洛必达)使用条件
  20. API请求示例汇总,亲测有效,taobaotmall,1688,pinduoduo等平台数据,信息化产业

热门文章

  1. 【MySQL】MySQL如何合并多行数据,行转列,group_concat 多行合并
  2. 篮球追逐梦想——怀旧《灌篮高手》
  3. 快讯 | 谷歌AI实验室DeepMind CEO称:AI未来也许会拥有自我意识;国内首个自主研发髋膝一体骨科手术机器人上市
  4. 第30天 高级的应用程序
  5. 小本本记下来!带你一起探秘 Scala3 与 Type classes
  6. 【ElasticSearch】学习笔记(三)es的高级操作
  7. 一篇互联网思维的健康日历是如何炼成的?
  8. 访问学者写申请信,有哪些必须要注意要点?
  9. 如何强制卸载老版本Vue-cli
  10. SIP ALG穿透NAT的实现