热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AandroidTV基于Leanback支持最新MD设计的TV开发框架

原文地址:http:blog.csdn.netsk719887916作者:skay基于6.0最新的API支持TV的框架Android6.0已完美支持TV开发,之前的5.0后Re

原文地址: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


推荐阅读
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
author-avatar
黄ll明雪_742
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有