CN117492714A - 一种处理Android TV多类型列表视图焦点的框架 - Google Patents
一种处理Android TV多类型列表视图焦点的框架 Download PDFInfo
- Publication number
- CN117492714A CN117492714A CN202311481495.XA CN202311481495A CN117492714A CN 117492714 A CN117492714 A CN 117492714A CN 202311481495 A CN202311481495 A CN 202311481495A CN 117492714 A CN117492714 A CN 117492714A
- Authority
- CN
- China
- Prior art keywords
- focus
- view
- control
- framework
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 21
- 230000000694 effects Effects 0.000 claims abstract description 7
- 230000003321 amplification Effects 0.000 claims abstract description 4
- 230000007246 mechanism Effects 0.000 claims abstract description 4
- 238000003199 nucleic acid amplification method Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 26
- 230000006386 memory function Effects 0.000 claims description 9
- 230000008447 perception Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 2
- 230000003993 interaction Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及计算机技术领域中图形图像处理技术领域,具体为一种处理Android TV多类型列表视图焦点的框架,包括由如下步骤:S1、构建页面:S101、如图1所示,TV画面由一个统一的列表构成,列表中又分为L0、L1、L2、L3...等多个类型模块构成,所述类型模块的UI样式又各不相同,如所述L0类型模块中又分为L0_P0,L0_P1等样式,当焦点选中时,L0_P2所在控件有选中和放大效果;S102、基于RecyclerView的ItemType机制,即通过为不同类型的列表项分配不同的ItemType,然后在适配器中根据ItemType来创建不同类型的ViewHolder;当焦点移动时,每个类型模块保存焦点的位置P。当焦点移动到L0_P7位置时,所述保存的位置P赋值为L0_P7。
Description
技术领域
本发明涉及计算机技术领域中图形图像处理技术领域,尤其是涉及一种处理Android TV多类型列表视图焦点的框架。
背景技术
智能电视现在是相当的普及,用户使用电视观看视频、玩游戏等。在电视应用程序中,列表是一种常见的UI控件,用于展示电视中的电影、电视剧、游戏等节目内容。在Android TV应用程序中,列表通常包含多种类型的项,列如电视节目、电影、游戏等,每种类型的项肯具有不同的UI布局和交互方式。此外,用户在使用电视应用程序时没需要使用遥控器进行导航和交互,因此需要考虑如何处理列表项的焦点问题,以提高用户体验。
目前,Android TV应用程序中处理多类型列表的方法比较繁琐,需要开发者手动处理列表项的焦点问题,包括焦点的移动、选中状态的切换等。这种方法不仅开发难度大,而且容易出现焦点错乱、选中状态不一致的问题,影响用户体验。
为此公告号为CN103916710B发明专利具体公开了焦点切换方法及系统的方法,其中的方法包括:截取用户的焦点切换操作;在焦点切换方向上筛选与当前焦点对应控件相邻的控件;根据筛选结果查找距离当前焦点对应控件最近的控件;根据查找结果进行焦点切换。通过本发明实现多种场景下的焦点切换,并且与系统自带的遥控器的焦点切换方法不产生任何冲突,在灵活切换焦点的同时,达到提高用户体验的目的。
该发明在焦点切换方向时只能查找距离当前焦点附近最近的控件,不能满足一些常见用户需求。现在TV应用程序的界面一般都是由多类型列表构成,每种类型具有不同UI布局,上述发明没有类型位置记忆功能和选中效果,比如“多类型列表中,从类型一是列表样式,同样类型二也是列表样式。将焦点从所述类型一的第2个位置切换到所述类型二的第0个位置,现在再将焦点向上切换到上述模块一的第2个位置”这个需求,上述专利就存在问题,只能查找最近的控件,降低用户使用体验。
并且传统的Android TV列表应用程序通常只包含一种类型的列表项,例如电影列表或电视剧节目列表。然而,随着Android TV应用程序的发展,越来越多的应用程序需要支持多种类型的列表项,例如同一页面存在多种类型电影、电视节目、音乐、游戏,每种类型的样式又油列表构成不同UI。这就需要开发者在应用程序中实现多类型列表,并处理不同类型列表项之间的焦点切换问题
为此,提出一种处理Android TV多类型列表视图焦点的框架。
发明内容
本发明的目的在于提一种处理Android TV多类型列表视图焦点的框架可以帮助开发者更轻松解决焦点切换、选中效果、位置类型记忆等问题。该框架包括多个组件,包括TvRecyclerView、TvLinearLayoutManager、TvItemView、TvFragmentLayout、焦点监听器等,可以根据不同类型不同UI的列表项进行配置和定制。通过使用该框架,开发者可以更快速、更高效地开发适用于Android TV的应用程序,提高开发效率和用户体验。
为实现上述目的,本发明提供如下技术方案:一种处理Android TV多类型列表视图焦点的框架,包括由如下步骤:
S1、构建页面:
S101、如图1所示,TV画面由一个统一的列表构成,列表中又分为L0、L1、L2、L3...等多个类型模块构成,所述类型模块的UI样式又各不相同,如所述L0类型模块中又分为L0_P0,L0_P1等样式,当焦点选中时,L0_P2所在控件有选中和放大效果;
S102、基于RecyclerView的ItemType机制,即通过为不同类型的列表项分配不同的ItemType,然后在适配器中根据ItemType来创建不同类型的ViewHolder;
S103、定义好页面数据结构,通过适配器绑定数据,填充数据,显示所述S1中的UI样式;
S2、焦点处理。
优选地,所述S2、焦点处理包括如下步骤构成:
S201、自定义控件TvRecyclerView,TvRecyclerView继承自Android系统的RecyclerView控件,然后启用RecyclerView的绘制顺序,重写getChildDrawingOrder()方法,根据获取焦点的子View调整RecyclerView的绘制顺序。
优选地,例如一共有5个子View,0,1,2,3,4,获取焦点的子View位置是3,那么现在的绘制的顺序就是0,1,2,4,3,所述的获取焦点的子View最后绘制,这样最后绘制的子View就会在焦点框的上层,通过后续配置聚焦的UI样式,可以增强用户对焦点位置的感知,提高交互体验。
优选地,所述S2、焦点处理包括如下步骤构成:
S202、自定义控件TvItemView,TvItemView继承自Android系统的FrameLayout控件,用于处理TvRecyclerView焦点分发到子View里的操作。
优选地,通过拦截焦点搜索,当接收遥控器向右信号时,需要找出最近的需要获取焦点的View,当前获取焦点的控件View的坐标是(x,y),下一个获取焦点的控件View的坐标是(x1,y1)。
优选地,计算两点之间距离通过数学公式d=√((x1-x)^2+(y1-y)^2)计算,d及两点之间的距离,通过对TvRecyclerView的子View进行遍历操作,d的值最小并且x<x1即可获取最近的需要获取焦点的下一个控件View,如果当前焦点View控件在最右侧,所述View控件实现抖动动画表示不可往右侧移动,同理,当接受遥控器向左信号时,也可同所述向右方法获取左侧的焦点View,当接收遥控器向上或者向下信号时,调用findNextFocus方法获取最近的视图并选中。
优选地,所述S2、焦点处理包括如下步骤构成:
S203、位置记忆功能:当焦点移动时,每个类型模块保存焦点的位置P,如图1,当焦点移动到L0_P7位置时,所述保存的位置P赋值为L0_P7。
优选地,当焦点首次移动到一个新类型模块时,比如当焦点从所述L0_P7位置移动到L1模块时,焦点会移动到L1列表中第一个位置的视图L1_P0位置,当接收遥控器向上信号时,此时获取所述位置P的值。
优选地,通过LinearLayoutManager的findViewByPosition(P)方法获取视图L0_P7并焦点移动到此处,这样就可以实现位置记忆功能。
与现有技术相比,本发明的有益效果是:
1、多类型列表中位置记忆功能:当焦点移动时,每个类型模块保存焦点的位置P。如附图,当焦点移动到L0_P7位置时,所述保存的位置P赋值为L0_P7。当焦点首次移动到一个新类型模块时,比如当焦点从所述L0_P7位置移动到L1模块时,焦点会移动到L1列表中第一个位置的视图L1_P0位置。当接收遥控器向上信号时,此时获取所述位置P的值,通过LinearLayoutManager的findViewByPosition(P)方法获取视图L0_P7并焦点移动到此处。与现有技术相比,开发者使用本发明,可以快速实现夸类型模块时位置记忆功能;当焦点达到屏幕边界时,抖动View控件实现边界撞击效果;
2、自定义控件TvRecyclerView,TvRecyclerView继承自Android系统的RecyclerView控件,然后启用RecyclerView的绘制顺序,重写getChildDrawingOrder()方法。根据获取焦点的子View调整RecyclerView的绘制顺序,例如一共有5个子View,0,1,2,3,4,获取焦点的子View位置是3,那么现在的绘制的顺序就是0,1,2,4,3,所述的获取焦点的子View最后绘制。这样最后绘制的子View就会在焦点框的上层,通过后续配置聚焦的UI样式,可以增强用户对焦点位置的感知,提高交互体验;
3、自定义控件TvItemView,TvItemView继承自Android系统的FrameLayout控件,用于处理TvRecyclerView焦点分发到子View里的操作。通过拦截焦点搜索,当接收遥控器向右信号时,需要找出最近的需要获取焦点的View,当前获取焦点的控件View的坐标是(x,y),下一个获取焦点的控件View的坐标是(x1,y1)。计算两点之间距离通过数学公式d=√((x1-x)^2+(y1-y)^2)计算,d及两点之间的距离。通过对TvRecyclerView的子View进行遍历操作,d的值最小并且x<x1即可获取最近的需要获取焦点的下一个控件View。如果当前焦点View控件在最右侧,所述View控件实现抖动动画表示不可往右侧移动。同理,当接受遥控器向左信号时,也可同所述向右方法获取左侧的焦点View。当接收遥控器向上或者向下信号时,调用findNextFocus方法获取最近的视图并选中,可以查找当前焦点对应最理想的控件。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的TV画面列表图;
图2为本发明的坐标两点计算图;
图3为本发明的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1至图3,本发明提供一种技术方案:
一种处理Android TV多类型列表视图焦点的框架,包括由如下步骤:
S1、构建页面
S101、如图1所示,TV画面由一个统一的列表构成,列表中又分为L0、L1、L2、L3...等多个类型模块构成,所述类型模块的UI样式又各不相同,如所述L0类型模块中又分为L0_P0,L0_P1等样式,当焦点选中时,L0_P2所在控件有选中和放大效果;
S102、基于RecyclerView的ItemType机制,即通过为不同类型的列表项分配不同的ItemType,然后在适配器中根据ItemType来创建不同类型的ViewHolder;
S103、定义好页面数据结构,通过适配器绑定数据,填充数据,显示所述S1中的UI样式;
S2、焦点处理
S201、自定义控件TvRecyclerView,TvRecyclerView继承自Android系统的RecyclerView控件,然后启用RecyclerView的绘制顺序,重写getChildDrawingOrder()方法。根据获取焦点的子View调整RecyclerView的绘制顺序,例如一共有5个子View,0,1,2,3,4,获取焦点的子View位置是3,那么现在的绘制的顺序就是0,1,2,4,3,所述的获取焦点的子View最后绘制。这样最后绘制的子View就会在焦点框的上层,通过后续配置聚焦的UI样式,可以增强用户对焦点位置的感知,提高交互体验;
S202、自定义控件TvItemView,TvItemView继承自Android系统的FrameLayout控件,用于处理TvRecyclerView焦点分发到子View里的操作。通过拦截焦点搜索,当接收遥控器向右信号时,需要找出最近的需要获取焦点的View,当前获取焦点的控件View的坐标是(x,y),下一个获取焦点的控件View的坐标是(x1,y1)。计算两点之间距离通过数学公式d=√((x1-x)^2+(y1-y)^2)计算,d及两点之间的距离。通过对TvRecyclerView的子View进行遍历操作,d的值最小并且x<x1即可获取最近的需要获取焦点的下一个控件View。如果当前焦点View控件在最右侧,所述View控件实现抖动动画表示不可往右侧移动。同理,当接受遥控器向左信号时,也可同所述向右方法获取左侧的焦点View。当接收遥控器向上或者向下信号时,调用findNextFocus方法获取最近的视图并选中;
S203、位置记忆功能:当焦点移动时,每个类型模块保存焦点的位置P。如图1,当焦点移动到L0_P7位置时,所述保存的位置P赋值为L0_P7。当焦点首次移动到一个新类型模块时,比如当焦点从所述L0_P7位置移动到L1模块时,焦点会移动到L1列表中第一个位置的视图L1_P0位置。当接收遥控器向上信号时,此时获取所述位置P的值,通过LinearLayoutManager的findViewByPosition(P)方法获取视图L0_P7并焦点移动到此处,这样就可以实现位置记忆功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种处理Android TV多类型列表视图焦点的框架,其特征在于:包括由如下步骤:
S1、构建页面:
S101、TV画面由一个统一的列表构成,列表中又分为L0、L1、L2、L3...等多个类型模块构成,所述类型模块的UI样式又各不相同,如所述L0类型模块中又分为L0_P0,L0_P1等样式,当焦点选中时,L0_P2所在控件有选中和放大效果;
S102、基于RecyclerView的ItemType机制,即通过为不同类型的列表项分配不同的ItemType,然后在适配器中根据ItemType来创建不同类型的ViewHolder;
S103、定义好页面数据结构,通过适配器绑定数据,填充数据,显示所述S1中的UI样式;
S2、焦点处理。
2.根据权利要求1所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:所述S2、焦点处理包括如下步骤构成:
S201、自定义控件TvRecyclerView,TvRecyclerView继承自Android系统的RecyclerView控件,然后启用RecyclerView的绘制顺序,重写getChildDrawingOrder()方法,根据获取焦点的子View调整RecyclerView的绘制顺序。
3.根据权利要求2所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:例如一共有5个子View,0,1,2,3,4,获取焦点的子View位置是3,那么现在的绘制的顺序就是0,1,2,4,3,所述的获取焦点的子View最后绘制,这样最后绘制的子View就会在焦点框的上层,通过后续配置聚焦的UI样式,可以增强用户对焦点位置的感知,提高交互体验。
4.根据权利要求1所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:所述S2、焦点处理包括如下步骤构成:
S202、自定义控件TvItemView,TvItemView继承自Android系统的FrameLayout控件,用于处理TvRecyclerView焦点分发到子View里的操作。
5.根据权利要求4所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:通过拦截焦点搜索,当接收遥控器向右信号时,需要找出最近的需要获取焦点的View,当前获取焦点的控件View的坐标是(x,y),下一个获取焦点的控件View的坐标是(x1,y1)。
6.根据权利要求5所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:计算两点之间距离通过数学公式d=√((x1-x)^2+(y1-y)^2)计算,d及两点之间的距离,通过对TvRecyclerView的子View进行遍历操作,d的值最小并且x<x1即可获取最近的需要获取焦点的下一个控件View,如果当前焦点View控件在最右侧,所述View控件实现抖动动画表示不可往右侧移动,同理,当接受遥控器向左信号时,也可同所述向右方法获取左侧的焦点View,当接收遥控器向上或者向下信号时,调用findNextFocus方法获取最近的视图并选中。
7.根据权利要求6所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:所述S2、焦点处理包括如下步骤构成:
S203、位置记忆功能:当焦点移动时,每个类型模块保存焦点的位置P,如下图,当焦点移动到L0_P7位置时,所述保存的位置P赋值为L0_P7。
8.根据权利要求7所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:当焦点首次移动到一个新类型模块时,比如当焦点从所述L0_P7位置移动到L1模块时,焦点会移动到L1列表中第一个位置的视图L1_P0位置,当接收遥控器向上信号时,此时获取所述位置P的值。
9.根据权利要求8所述的一种处理Android TV多类型列表视图焦点的框架,其特征在于:通过LinearLayoutManager的findViewByPosition(P)方法获取视图L0_P7并焦点移动到此处,这样就可以实现位置记忆功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311481495.XA CN117492714A (zh) | 2023-11-09 | 2023-11-09 | 一种处理Android TV多类型列表视图焦点的框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311481495.XA CN117492714A (zh) | 2023-11-09 | 2023-11-09 | 一种处理Android TV多类型列表视图焦点的框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492714A true CN117492714A (zh) | 2024-02-02 |
Family
ID=89677760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311481495.XA Pending CN117492714A (zh) | 2023-11-09 | 2023-11-09 | 一种处理Android TV多类型列表视图焦点的框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492714A (zh) |
-
2023
- 2023-11-09 CN CN202311481495.XA patent/CN117492714A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2036338B1 (en) | Techniques to manage an electronic program guide | |
US9285945B2 (en) | Method and apparatus for displaying multi-task interface | |
US20160266781A1 (en) | Customizable media player controls | |
US20040100504A1 (en) | Item selection systems and methods of displaying the same | |
JP2013519125A (ja) | グリッドナビゲーションのための機器および方法 | |
CN110659010A (zh) | 一种画中画显示方法以及显示设备 | |
CN102075800A (zh) | 基于交互式个人电视机顶盒文件播放控制方法及系统 | |
CN102413373A (zh) | 一种生成数字电视菜单导航页的方法和装置 | |
CN112463269B (zh) | 用户界面显示方法及显示设备 | |
CN110784753B (zh) | 互动视频播放方法及装置、存储介质、电子设备 | |
KR20160023394A (ko) | 디스플레이 장치 및 그 제어 방법 | |
CN111741367B (zh) | 视频互动方法、装置、电子设备及计算机可读存储介质 | |
CN106060633A (zh) | 一种信号源的图像预览方法及电视终端 | |
CN113342248A (zh) | 直播显示方法、装置、存储介质及电子设备 | |
CN113014939A (zh) | 显示设备及播放方法 | |
KR20150121103A (ko) | 데이터 표현의 비선형 내비게이션 | |
CN113014985A (zh) | 互动多媒体内容处理方法、装置、电子设备及存储介质 | |
KR20150017099A (ko) | 페이지 구성 방법 및 이를 지원하는 전자 장치 | |
US20160345059A1 (en) | Method and device for switching channel | |
US8917356B2 (en) | Play control system and method | |
CN111064983B (zh) | 显示设备 | |
WO2021236575A1 (en) | Modular user interface for video delivery system | |
CN115605837A (zh) | 带有动作卡链的游戏控制台应用程序 | |
US20160165315A1 (en) | Display apparatus, method of displaying channel list performed by the same, server, and control method performed by the server | |
KR20190070937A (ko) | 광고 배치 충돌을 해결하기 위한 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |