显示终端基于Android应用的OSD压缩方法及装置的制作方法

文档序号:7852913阅读:337来源:国知局
专利名称:显示终端基于Android应用的OSD压缩方法及装置的制作方法
技术领域
本发明涉及显示终端领域,特别涉及一种显示终端基于Android应用的OSD压缩方法及装置。
背景技术
随着电视技术的发展,一屏双显技术在电视系统上的应用也日趋成熟。现有技术中,对OSD (on-screen display,屏幕菜单式调节方式)的处理通常采用压缩整个OSD层来实现双屏显示。由于整个OSD层进行压缩时,所有应用和菜单将被一起压缩,其缺陷在于,OSD压缩的灵活性较差,亟需改进。

发明内容
本发明的主要目的在于提供一种显示终端基于Android应用的OSD压缩方法,旨在提高OSD压缩的灵活性。为了实现发明目的,本发明提供一种显示终端基于Android应用的OSD压缩方法,包括以下步骤获取当前Activity的根视图;压缩所述根视图;将压缩后的所述根视图进行平移。 优选地,所述获取当前Activity的根视图步骤具体包括当接收到用户发送的OSD显示命令时,获取与所述Activity的窗口对应的布局文件;根据所述根视图的根控件从所述布局文件查找获得对应的根视图。优选地,所述压缩根视图步骤具体包括调用沿宽度方向压缩根视图的setScaleX方法将所述根视图的宽度压缩为预置的第一阈值;调用沿高度方向压缩根视图的setScaleY方法将所述根视图的高度压缩为预置的第二阈值。优选地,所述第一阈值的大小等于所述根视图的宽度的一半,所述第二阈值的大小等于所述根视图的高度。优选地,所述将压缩后的根视图进行平移步骤包括调用ObjectAnimator方法对压缩后的所述根视图进行平移操作。本发明还提供一种显示终端基于Android应用的OSD压缩装置,包括获取模块,用于获取当前Activity的根视图;压缩模块,用于压缩所述根视图;平移模块,用于将压缩后的所述根视图进行平移。优选地,所述获取模块包括
获取子块,用于当接收到用户发送的OSD显示命令时,获取与所述Activity的窗口对应的布局文件;查找子块,用于根据所述根视图的根控件从所述布局文件查找获得对应的根视图。优选地,所述压缩模块包括第一压缩子块,用于调用沿宽度方向压缩根视图的setScaleX方法将所述根视图的宽度压缩为预置的第一阈值;第二压缩子块,用于调用沿高度方向压缩根视图的setScaleY方法将所述根视图的高度压缩为预置的第二阈值。优选地,所述第一阈值的大小等于所述根视图的宽度的一半,所述第二阈值的大 小等于所述根视图的高度。优选地,所述平移模块,具体用于调用ObjectAnimator方法对压缩后的所述根视图进行平移操作。本发明通过获取Activity的根视图,并调整该根视图的大小,实现OSD中Activity的压缩。由于OSD压缩过程中,只对Activity层压缩,无需对其他的应用和菜单进行压缩,因此本发明提供的OSD压缩方法提高了 OSD压缩的灵活性。此外,采用setScaleX和setScaleY计算方法实现根视图的压缩,该压缩的计算方法可使压缩后的画面像素信息无损失,因此提高了 OSD压缩后画面显示的效果。


图I为本发明显示终端基于Android应用的OSD压缩方法一实施例的流程示意图;图2为本发明显示终端基于Android应用的OSD压缩方法一实施例中获取根视图的流程示意图;图3为本发明显示终端基于Android应用的OSD压缩方法一实施例中根视图压缩的流程示意图;图4为本发明显示终端基于Android应用的OSD压缩装置一实施例的结构示意图;图5为图4中获取模块的结构示意图;图6为图4中压缩模块的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式本发明实施例中,显示终端为具有显示功能的电子设备,例如智能手机和电视机。以下将以电视机为例,详细说明本发明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,图I为本发明显示终端基于Android应用的OSD压缩方法一实施例的流程不意图。提供一种显示终端基于Android应用的OSD压缩方法,包括以下步骤
步骤S10,获取当前Activity的根视图;Activity为Android的四大组件之一,该Activity包括一默认的显示窗口,该显不窗口具有一层一层的视图,该一层一层的视图包括一用于设置窗口大小的根视图。步骤S20,压缩上述根视图; 当电视机获取到上述根视图,可根据预置的压缩方法对该根视图进行压缩。应当说明的是,本实施例中的压缩是指对该根视图的大小进行压缩,例如,可将上述根视图压缩为高度保持不变,宽度缩小一半的根视图,即上述Activity通过压缩后的显示窗口显示的区域等于原来显示窗口的一半。步骤S30,将压缩后的上述根视图进行平移。当上述根视图压缩完毕后,将压缩后的根视图进行平移,平移至显示屏对应的显示区域,然后激活该OSD画面的动画效果,完成OSD压缩操作。本发明通过获取Activity的根视图,并调整该根视图的大小,实现OSD中Activity的压缩。由于OSD压缩过程中,只对Activity层压缩,无需对其他的应用和菜单进行压缩,因此本发明提供的OSD压缩方法提高了 OSD压缩的灵活性。参照图2,图2为本发明显示终端基于Android应用的OSD压缩方法一实施例中获取根视图的流程示意图。本实施例中,上述步骤SlO包括步骤S101,当接收到用户发送的OSD显示命令时,获取与上述Activity的窗口对应的布局文件;步骤S102,根据上述根视图的根控件从上述布局文件查找获得对应的根视图。例如,用户在观看电视时,可通过遥控器控制OSD画面从全屏显示切换至双屏显示。此时遥控器将发送一 OSD压缩指令至电视机,电视机接收到该OSD压缩指令后,通过调用setContentView接口查找到当前Activity的窗口对应的布局文件,本实施例中该布局文件为XML格式的文件。当查找获得该布局文件后,通过调用findViewByld方法,并根据根视图的根控件从该布局文件中查找获得对应的根视图。该根控件为根视图的标示符ID。参照图3,图3为本发明显示终端基于Android应用的OSD压缩方法一实施例中根视图压缩的流程示意图。本实施例中,上述步骤S20包括步骤S201,调用沿宽度方向压缩根视图的setScaleX方法将上述根视图的宽度压缩为第一阈值;步骤S202,调用沿高度方向压缩根视图的setScaleY方法将上述根视图的高度压缩为第二阈值。具体的,根视图的压缩的计算方法可根据实际需要进行设置,作为优选,本实施例调用setScaleX (float f)和setScaleY (float g)计算方法,使根视图的宽度和高度分别压缩至预置的第一阈值和第二阈值。例如,电视机屏幕的宽度为L,高度为H,第一阈值为L/4,第二阈值为H/2。当电视机进入双屏显示时,setScaleX (float f)中f的值为第一阈值与电视机屏幕的宽度的比值,即f=0. 25 ;setScaleY (float g)中g的值为第二阈值与电视机屏幕的高度的比值,即g=0. 5。通过setScaleX (0. 25)和setScaleY (0. 5)将根视图的宽度和高度分别压缩至L/4和H/2。应当说明的是,本实施例中第一阈值和第二阈值的大小可根据双屏显示时显示区域的大小进行设定,在此不作进一步限定。优选的,本实施例中第一阈值为L/2,第二阈值为H ;上述宽度方向为Android系统定义的X方向,上述高度方向为Android系统定义的Y方向。本发明实施例提供的OSD压缩方法中,Android系统为具有setScaleX方法和setScaleY方法接口的Android系统。由于本实施例米用setScaleX(float f )和setScaleY(float g)计算方法实现根视图的压缩,该压缩的计算方法可使压缩后的画面像素信息无损失,因此提高了 OSD压缩后画面显示的效果。具体的,上述步骤S30包括调用ObjectAnimator方法对压缩后的根视图进行平移操作。例如,电视机双屏显示的显示区域为左右均分的两个半屏,则上述第一阈值为L/2和第二阈值为H,采用上述setScaleX (float f)和setScaleY (float g)计算方法对根视 图进行压缩后,压缩后的根视图的宽度为L/2、高度为H、中心点与屏的中心点重合。通过调用ObjectAnimator方法对根视图向左或向右进行平移操作,平移长度为屏幕宽度的四分之一,即为 L/4。具体的,使用 0bjectAnimator. ofFloat (view, “translationX”,L/4)方法来实现平移效果,其中第一个参数view为对象名,即该view的为根视图,第二个参数为属性名,该“translationX”表示动画属性为沿X轴平移,第三个参数为可变参数,该参数为根视图沿X轴平移的位移量,正数表示将根视图向右平移,负数表示将根视图向左平移。当根视图移动到位后,激活动画效果,完成OSD的压缩。本发明还提供一种显示终端基于Android应用的OSD压缩装置,用于实现上述方法。参照图4,图4为本发明显示终端基于Android应用的OSD压缩装置一实施例的结构示意图。该显示终端基于Android应用的OSD压缩装置包括获取模块100,用于获取当前Activity的根视图;Activity为Android的四大组件之一,该Activity包括一默认的显示窗口,该显不窗口具有一层一层的视图,该一层一层的视图包括一用于设置窗口大小的根视图。压缩模块200,用于压缩上述根视图;当获取模块100获取得到当前Activity的根视图,将该根视图发送压缩模块200。压缩模块200根据可根据预置的压缩方法对该根视图进行压缩。应当说明的是,本实施例中的压缩是指对该根视图的大小进行压缩,例如,可将上述根视图压缩为高度保持不变,宽度缩小一半的根视图,即上述Activity通过压缩后的显示窗口显示的区域等于原来显示
窗口的一半。平移模块300,用于将压缩后的上述根视图进行平移。压缩模块200对根视图压缩完成后,输出一压缩完成信号至平移模块300,平移模块300接收到该压缩完成信号后,将压缩后的根视图移动至显示屏对应的显示区域,然后激活该OSD画面的动画效果,完成OSD压缩操作。本发明通过获取模块100获取Activity的根视图,并通过压缩模块200调整该根视图的大小,实现OSD中Activity的压缩。由于OSD压缩过程中,只对Activity层压缩,无需对其他的应用和菜单进行压缩,因此本发明提供的OSD压缩装置提高了 OSD压缩的灵活性。参照图5,图5为图4中获取模块的结构示意图。本实施例中,获取模块100包括获取子块101,用于当接收到用户发送的OSD显示命令时,获取与上述Activity的窗口对应的布局文件;查找子块102,用于根据上述根视图的根控件从上述布局文件查找获得对应的根视图。例如,用户在观看电视时,可通过遥控器控制OSD画面从全屏显示切换至双屏显示。此时遥控器将发送一 OSD压缩指令至电视机,当获取子块101接收到该OSD压缩指令后,通过调用setContentView接口查找到当前Activity的窗口对应的布局文件,本实施例中该布局文件为XML格式的文件。当获取子块101查找获得该布局文件后,由查找子块102调用findViewByld方法,并根据根视图的根控件从该布局文件中查找获得对应的根视图。该根控件为根视图的标不符ID。参照图6,图6为图4中压缩模块的结构示意图。本实施例中,上述压缩模块200包括
第一压缩子块201,用于调用沿宽度方向压缩根视图的setScaleX方法将上述根视图的宽度压缩为预置的第一阈值;第二压缩子块202,用于调用高度方向压缩根视图的setScaleY方法将上述根视图的高度压缩为预置的第二阈值。具体的,根视图的压缩的计算方法可根据实际需要进行设置,作为优选,本实施例中查找子块102(参照图5所示)将查找获得的根视图输出至第一压缩子块201,由第一压缩子块201调用setScaleX (float f)计算方法,使根视图的宽度压缩至预置的第一阈值;然后将压缩后的根视图输出至第二压缩子块202,由第二压缩子块202调用setScaleY(floatg)计算方法,使根视图的高度压缩至预置的第二阈值。例如,电视机屏幕的宽度为L,高度为H,第一阈值为L/4,第二阈值为H/2。当电视机进入双屏显示时,则setScaleX(float f)中f的值为第一阈值与电视机屏幕的宽度的比值,即f=0. 25 ;setScaleY (float g)中g的值为第二阈值与电视机屏幕的高度的比值,即g=0. 5。通过setScaleX (0. 25)和setScaleY(0.5)将根视图的宽度和高度分别压缩至L/4和H/2。应当说明的是,本实施例中第一阈值和第二阈值的大小可根据双屏显示时显示区域的大小进行设定,在此不作进一步限定。优选的,本实施例中第一阈值为L/2,第二阈值为H ;上述宽度方向为Android系统定义的X方向,上述高度方向为Android系统定义的Y方向。本发明实施例提供的OSD压缩装置中,Android系统为具有setScaleX方法和setScaleY方法接口的Android系统。由于本实施例米用setScaleX(float f )和setScaleY(float g)计算方法实现根视图的压缩,该压缩的计算方法可使压缩后的画面像素信息无损失,因此提高了 OSD压缩后画面显示的效果。具体的,上述平移模块300,用于调用ObjectAnimator方法对压缩后的上述根视图进行平移操作。当上述第二压缩子块202对根视图的压缩操作完成后发送一压缩完成信号至平移模块300,平移模块300接收到第二压缩子块202所发送的压缩完成信号后,将压缩后的根视图移动至显示屏对应的显示区域,然后激活该OSD画面的动画效果,以完成OSD的压缩操作。例如,电视机双屏显示的显示区域为左右均分的两个半屏,则上述第一阈值为L/2和第二阈值为H,采用上述setScaleX (float f)和setScaleY (float g)计算方法对根视图进行压缩后,压缩后的根视图的宽度为L/2、高度为H、中心点与屏的中心点重合。平移模块300通过调用ObjectAnimator方法对根视图向左或向右进行平移操作,平移长度为屏幕宽度的四分之一,即为L/4。具体的,通过调用ObjectAnimator. ofFloat (view,“translationX”, L/4)方法来实现平移效果,其中第一个参数view为对象名,即该view的为根视图,第二个参数为属性名,该“translationX”表示动画属性为沿X轴平移,第三个参数为可变参数,该参数为根视图沿X轴平移的位移量,正数表示将根视图向右平移,负数表示将根视图向左平移。当根视图移动到位后,激活动画效果,完成OSD的压缩。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种显示终端基于Android应用的OSD压缩方法,其特征在于,包括以下步骤 获取当前Activity的根视图; 压缩所述根视图; 将压缩后的所述根视图进行平移。
2.如权利要求I所述的OSD压缩方法,其特征在于,所述获取当前Activity的根视图步骤具体包括 当接收到用户发送的OSD显示命令时,获取与所述Activity的窗口对应的布局文件; 根据所述根视图的根控件从所述布局文件查找获得对应的根视图。
3.如权利要求I所述的OSD压缩方法,其特征在于,所述压缩根视图步骤具体包括 调用沿宽度方向压缩根视图的setScaleX方法将所述根视图的宽度压缩为预置的第一阈值; 调用沿高度方向压缩根视图的setScaleY方法将所述根视图的高度压缩为预置的第二阈值。
4.如权利要求3所述的OSD压缩方法,其特征在于,所述第一阈值的大小等于所述根视图的宽度的一半,所述第二阈值的大小等于所述根视图的高度。
5.如权利要求I所述的OSD压缩方法,其特征在于,所述将压缩后的根视图进行平移步骤包括 调用ObjectAnimator方法对压缩后的所述根视图进行平移操作。
6.一种显示终端基于Android应用的OSD压缩装置,其特征在于,包括 获取模块,用于获取当前Activity的根视图; 压缩模块,用于压缩所述根视图; 平移模块,用于将压缩后的所述根视图进行平移。
7.如权利要求6所述的OSD压缩装置,其特征在于,所述获取模块包括 获取子块,用于当接收到用户发送的OSD显示命令时,获取与所述Activity的窗口对应的布局文件; 查找子块,用于根据所述根视图的根控件从所述布局文件查找获得对应的根视图。
8.如权利要求6所述的OSD压缩装置,其特征在于,所述压缩模块包括 第一压缩子块,用于调用沿宽度方向压缩根视图的setScaleX方法将所述根视图的宽度压缩为预置的第一阈值; 第二压缩子块,用于调用沿高度方向压缩根视图的setScaleY方法将所述根视图的高度压缩为预置的第二阈值。
9.如权利要求8所述的OSD压缩装置,其特征在于,所述第一阈值的大小等于所述根视图的宽度的一半,所述第二阈值的大小等于所述根视图的高度。
10.如权利要求6所述的OSD压缩装置,其特征在于,所述平移模块,具体用于调用ObjectAnimator方法对压缩后的所述根视图进行平移操作。
全文摘要
本发明公开了一种显示终端基于Android应用的OSD压缩方法及装置,其中所述OSD压缩方法包括以下步骤获取当前Activity的根视图;压缩所述根视图;将压缩后的所述根视图进行平移。本发明提供的OSD压缩方法提高了OSD压缩的灵活性。
文档编号H04N5/445GK102724456SQ201210183040
公开日2012年10月10日 申请日期2012年6月5日 优先权日2012年6月5日
发明者刘卫方, 陈涛, 韩菁 申请人:深圳Tcl新技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1