Android系统中文本样式的更换方法及用户设备的制作方法

文档序号:6357746阅读:151来源:国知局
专利名称:Android系统中文本样式的更换方法及用户设备的制作方法
技术领域
本发明涉及计算机技术领域,具体是Android系统中文本样式的更换方法及用户设备。
背景技术
用户设备,如手机等大都使用到Android(—种基于Linux平台的开源手机操作系统的名称)程序,Android系统提供了一套简单的显示主题配置功能,可以用来统一配置文本资源的显示。但是现有技术中,加载该Android系统的用户设备并没有提供动态更换文本资源的显示的功能,用户的体验性不高
发明内容

本发明的主要目的是提供一种可以在加载Android系统的用户设备实现动态更换文本资源的显示的方法和用户设备。本发明解决其技术问题所采用的技术方案是一种Android系统中文本样式的更换方法,其包括根据预设的规则建立文本资源的文件名称;生成文本资源的文件名称与文本ID的映射表;当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;获取另一个文本资源的文件名称;根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。优选地,所述根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源,具体包括根据所述另一个文本资源的文件名称在所述映射表中查询并获取对应的另一个文本ID,根据所述另一个文本ID得到另一个文本资源,并将当前显示的文本资源更换为所述另一个文本资源。优选地,所述获取另一个文本资源的文件名称,之前,进一步包括获取当前显示文本资源的文本ID,根据所述当前显示文本资源的文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称。优选地,所述生成文件名称与文本ID的映射表,之前,启动所述Android系统时,生成一个工具类,所述工具类根据用户界面配置的xml定义文本资源的内容,生成相应的view 树。优选地,进一步包括在所述工具类中添加有拦截器,用于把原有的生成系统TextView的命令拦截,把系统包名替换生成预先自定义包的包名。本发明还提供一种用户设备,所述用户设备加载Android系统,该用户设备包括
名称建立单元,用于根据预设的规则建立文本资源的文件名称;映射表生成单元,用于生成文本资源的文件名称与文本ID的映射表;名称查询单元,用于当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;资源获取单元,用于获取另一个文本资源的文件名称;资源更换单元,用于根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。优选地,所述资源更换单元,还包括ID获取子单元,用于根据所述另一个文本资源的文件名称在所述映射表中查询并 获取对应的另一个文本ID ;文本获取子单元,用于根据所述另一个文本ID得到所述另一个文本资源,并将当前显示的文本资源更换为所述另一个文本资源。优选地,所述用户设备还包括名称获取单元,用于获取当前显示文本资源的文本ID,根据所述当前显示文本资源的文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称。优选地,所述用户设备还包括资源生成单元,用于在启动所述Android系统时,生成一个工具类,所述工具类根据用户界面配置的xml定义的文本资源的内容,生成相应的view树。优选地,所述资源生成单元,还用于在所述工具类中添加有拦截器,该拦截器将原有的生成系统TextView的命令拦截,把系统包替换生成预先自定义包。实施本发明的技术方案,具有以下有益效果本发明提供的方法和用户设备通过文本ID与文件名称的映射关系,根据文件名称的命名规则获取另一个要显示的文件资源的文件名称,然后根据该文件名称在映射关系中找到对应的文件ID,然后根据该文件ID调出该另一个文件资源进行显示,实现动态更换文本资源的显示。增强了用户的体验性。


图I为本发明实施例提供的方法流程图;图2为本发明实施例提供的另一方法的流程图;图3为本发明实施例提供的用户设备的结构示意图;图4为图3中资源更换单元的结构示意图;图5为本发明实施例提供的另一用户设备的结构示意图;图6为本发明实施例提供的又一用户设备的结构示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例提供一种Android系统中文本样式的更换方法,如图I所示,该方法包括S110、根据预设的规则建立文本资源的文件名称;对于文本资源,需要遵守文件名称的命名规则,如以字母t开头,该t后依次跟当前文字资源的显示编号、下划线和配置名称,如第一套文本文件名称为s0_bg、第二套文本文件名称为sl_bg。当有动态更换的文本资源时,需要根据上述命名规则,确定好另一个文本的资源编号,放入Android应用程序的项目的xml (extensible Markup Language,可扩展标记语言,用来描述界面布局的文件,android系统放置用户自定义数据的目录,这里用来放置字体资源)目录当中,Android系统即可自动识别为可换的文本资源。S120、生成文本资源的文件名称与文本ID的映射表。Android系统中的程序在编译的时候,会生成一个名称为R的类,R类里面包括子类,用于管理每个文本资源的文本ID。其中文本资源的显示属性为xml文件,即作为xml子 类。通过JAVA(—种程序设计语言)本身提供的反射机制,获取到xml子类中所有的文本ID,并反射出文本资源的名称,生成一个以文本名称为key (索引)、能显示文本资源的内容的文本ID的映射表(一个ID对应多种文本资源的内容,如大小、样式),即文件名称与文本ID之间双向的映射表。该映射表成为通过文本名称获取文本资源内容(如大小、显示样式等)的一种途径。S130、通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;本发明实施方式当用户设备中的Android系统启动时,生成一个工具类Inflater (充气者,一个工具类的名称),这个工具类根据用户界面配置的xml定义的文本资源的内容(如大小、显示样式等),生成相应的界面(view)树。在这个过程中,为了使生成的界面树中的所有的TextView(文本视区)是预先自定义的TextView,需要在工具类Inflater中添加拦截器,这个拦截器将原有的生成系统TextView的命令拦截,把系统包,例如包名为com. android, widget.的系统包替换生成预先自定义包,该预先自定义包的包名,为com. tencent. adnroid. pad. view,如果没有加拦截器,在生成系统包的时候,系统会自动将该TextView加上系统包名com. android, widget.,如果加上拦截器就会把系统包名替换生成该预先自定义包的包名com. tencent. adnroid. pad. view,生成的预先自定义包,即生成的TextView不一样(是预先自定义的TextView),这样,在生成界面配置的xml时,要加载预先自定义的TextView,拦截后只需要写TextView即可,而预先自定义包的包名(com. tencent. adnroid. pad. view)在拦截器里。所以在每次配置xml只用按照系统原有写法进行编辑,无需关注替换文本样式的情形,减少了配置的复杂程度,提高了效率。因为当用户设备中的Android系统在程序启动时,用户设备的Android系统的解析用户界面配置的xml文件(该xml文件中保存着文件名称),并在生成文本资源的时候,把文本资源的文件名称转化成一个唯一的文本ID,并去掉文本资源的文件名称。在该步骤S110.S120.S130中,配置操作时只能得到文本ID,所以在该步骤130中要根据文本ID获取文本资源的文件名称,具体的在该步骤中,在需要更换文本资源的样式时根据该唯一的文本ID以及上述映射表,从映射表中获取到文件名称,保存在每个文本资源当中。S140、根据当前显示的文本资源的文件名称按照设定的规则获取另一个文本资源的文件名称;
S150、根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。在一具体实施方式
中,所述步骤S150包括根据预置的规则,需要显示另一个文本资源时,先根据预置的规则获取另一个文本资源的文件名称,根据该另一个文本资源的文件名称和映射表获取 对应的另一个文本ID,根据该另一个文本ID则可以获取另一个文本资源,并将当前显示的文本资源更换为所述另一个文本资源。 另外,在其他的实施例中,如图2所示,所述步骤S140之前,进一步包括步骤S131、获取当前显示文本资源的文本ID,根据所述当前显示文本资源的文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称。在该步骤S131中,可获取当前显示界面的根节点,遍历显示界面的界面树,分别通过调用显示界面对象的invalidate方法(android系统所有UI组件用来刷新的方法,起到强制刷新界面的功能)来刷新界面。上述实施例提供的方法通过文本ID与文件名称的映射关系,根据文件名称的命名规则获取另一个要显示的文件资源的文件名称,然后根据该文件名称在映射关系中找到对应的文件ID,然后根据该文件ID调出该另一个文件资源进行显示,实现动态更换文本资源的显示。增强了用户的体验性。本发明实施例还提供一种用户设备,所述用户设备加载Android系统,如图3所示,该用户设备包括名称建立单元210,用于根据预设的规则建立文本资源的文件名称;映射表生成单元220,用于生成文本资源的文件名称与文本ID的映射表;名称查询单元230,用于当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;资源获取单元240,用于获取另一个文本资源的文件名称;资源更换单元250,用于根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。如图4所示,在其他的实施例中,所述资源更换单元250,还包括ID获取子单元251,用于根据所述另一个文本资源的文件名称在所述映射表中查询并获取对应的另一个文本ID ;文本获取子单元252,用于根据所述另一个文本ID得到另一个文本资源,并将当前显示的文本资源更换为所述另一个文本资源。进一步的,如图5所示,在其他实施例中,所述用户设备还包括名称获取单元260,用于获取当前显示文本资源的文本ID,根据所述当前显示文本资源的文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称。在其他的实施例中,进一步的,如图6所示,所述用户设备还包括资源生成单元270,用于在启动所述Android系统时,生成一个工具类,所述工具类根据用户界面配置的xml定义的文本资源的内容,生成相应的view树。优选地,所述资源生成单元260,还用于在所述工具类中添加有拦截器,将原有的生成系统TextView的命令拦截,把系统包的包名替换生成预先自定义包的包名。上述实施例提供的用户设备通过文本ID与文件名称的映射关系,根据文件名称的命名规则获取另一个要显示的文件资源的文件名称,然后根据该文件名称在映射关系中找到对应的文件ID,然后根据该文件ID调出该另一个文件资源进行显示,实现动态更换文本资源的显示。增强了用户的体验性。以上仅为本发明 的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种Android系统中文本样式的更换方法,其特征在于,包括 根据预设的规则建立文本资源的文件名称; 生成文本资源的文件名称与文本ID的映射表; 当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称; 获取另一个文本资源的文件名称; 根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。
2.如权利要求I所述方法,其特征在于,所述根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源,具体包括 根据所述另一个文本资源的文件名称在所述映射表中查询并获取对应的另一个文本ID,根据所述另一个文本ID得到所述另一个文本资源,并将当前显示的文本资源更换为所述另一个文本资源。
3.如权利要求I所述方法,其特征在于,所述获取另一个文本资源的文件名称,之前,进一步包括 获取当前显示文本资源的文本ID,根据所述当前显示文本资源的文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称。
4.如权利要求I所述方法,其特征在于,所述生成文件名称与文本ID的映射表,之前,启动所述Android系统时,生成一个工具类,所述工具类根据用户界面配置的xml定义文本资源的内容,生成相应的view树。
5.如权利要求4所述方法,其特征在于,进一步包括在所述工具类中添加有拦截器,用于把原有的生成系统TextView的命令拦截,并把系统包名替换生成预先自定义包的包名。
6.一种用户设备,其特征在于,所述用户设备加载Android系统,该用户设备包括 名称建立单元,用于根据预设的规则建立文本资源的文件名称; 映射表生成单元,用于生成文本资源的文件名称与文本ID的映射表; 名称查询单元,用于当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称; 资源获取单元,用于获取另一个文本资源的文件名称; 资源更换单元,用于根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。
7.如权利要求6所述用户设备,其特征在于,所述资源更换单元,还包括 ID获取子单元,用于根据所述另一个文本资源的文件名称在所述映射表中查询并获取对应的另一个文本ID ; 文本获取子单元,用于根据所述另一个文本ID得到所述另一个文本资源,并将当前显示的文本资源更换为所述另一个文本资源。
8.如权利要求6所述用户设备,其特征在于,还包括 名称获取单元,用于获取当前显示文本资源的文本ID,根据所述当前显示文本资源的文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称。
9.如权利要求6所述用户设备,其特征在于,还包括资源生成单元,用于在启动所述Android系统时,生成一个工具类,所述工具类根据用户界面配置的xml定义的文本资源的内容,生成相应的view树。
10.如权利要求9所述方法,其特征在于,所述资源生成单元,还用于在所述工具类中添加拦截器,该拦截器将原有的生成系统TextView的命令拦截,把系统包替换生成预先自定义包的包名。
全文摘要
本发明涉及一种文本样式的更换方法及用户设备,其包括根据预设的规则建立文本资源的文件名称;生成文本资源的文件名称与文本ID的映射表;当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;获取另一个文本资源的文件名称;根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。本发明提供的方法和用户设备通过文本ID与文件名称的映射关系,实现动态更换文本资源的显示,增强了用户的体验性。
文档编号G06F17/30GK102737041SQ20111008772
公开日2012年10月17日 申请日期2011年4月8日 优先权日2011年4月8日
发明者万鑫, 马斌 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1