Android系统中文本样式的更换方法及用户设备技术方案

技术编号:7898163 阅读:257 留言:0更新日期:2012-10-23 04:21
本发明专利技术涉及一种文本样式的更换方法及用户设备,其包括:根据预设的规则建立文本资源的文件名称;生成文本资源的文件名称与文本ID的映射表;当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;获取另一个文本资源的文件名称;根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。本发明专利技术提供的方法和用户设备通过文本ID与文件名称的映射关系,实现动态更换文本资源的显示,增强了用户的体验性。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体是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本文档来自技高网...

【技术保护点】
一种Android系统中文本样式的更换方法,其特征在于,包括:根据预设的规则建立文本资源的文件名称;生成文本资源的文件名称与文本ID的映射表;当需要更换当前显示的文本资源时,通过文本ID在所述映射表中查询并获取当前显示的文本资源的文件名称;获取另一个文本资源的文件名称;根据所述另一个文本资源的文件名称将当前显示的文本资源更换为另一个文本资源。

【技术特征摘要】

【专利技术属性】
技术研发人员:马斌万鑫
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1