Android开发中string.xml文件的使用
为什么需要把应用中出现的文字单独存放在string.xml文中呢?
一:是为了国际化,Android建议将在屏幕上显示的文字定义在strings.xml中,如果今后需要进行国际化,比如我们开发的应用本来是面向国内用户的,当然在屏幕上使用中文,而如今我们要让应用走向世界,打入日本市场,当然需要在手机屏幕上显示日语,如果没有把文字信息定义在string.xml中,就需要修改程序的内容了。但当我们把所有屏幕上出现的文字信息都集中存放在string.xml文件之后,只需要再提供一个string.xml文件,把里面的汉子信息都修改为日语,再运行程序时,android操作系统会根据用户手机的语言环境和国家来自动选择相应的string.xml文件,这时手机界面就会显示出日语。这样做国际化非常的方便。
二:为了减少应用的体积,降低数据的冗余。假设在应用中要使用"我们一直在努力"这段文字1000次,如果我们不将"我们一直在努力"定义在string.xml文件中,而是在每次使用时直接写上这几个字,这样下来程序中将有70000个字,这70000个字占136KB的空间。而由于手机的资源有限,其CPU的处理能力及内存是非常有限的,136KB对手机内存来说是个不小的空间,我们在做手机应用是一定要记住“能省内存就省内存”。而如果将这几个字定义在string.xml中,在每次使用到的地方通过Resources类来引用该文字,只占用到了14B,因此对降低应用体积效果是非常有效地.当然我们可能在开发时可能并不会用到这么多的文字信息,但是“不以善小而不为,不以恶小而为之”,作为手机应用开发人员,我们一定要养成良好的编程习惯。
1.在程序中获取string.xml中字符串和数值
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="hello">Hello World, MainActivity!</string>
- <string name="app_name">TestExample01</string>
- </resources>
在Activity中使用:
- String appName=(String) this.getResources().getText(R.string.app_name);
- Log.i("test", "appName="+appName);
或者:
- String appName=(String) this.getResources().getString(R.string.app_name);
- Log.i("test", "appName="+appName);
2.定义string数组(arrays.xml)
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="sports">
- <item>足球</item>
- <item>篮球</item>
- <item>太极</item>
- <item>冰球</item>
- </string-array>
- </resources>
- ----getResources().getStringArray(R.string.sports);
3.定义颜色(colors.xml)
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <color name="black">#FFFFFF</color>
- </resources>
- ---getResources().getDrawable(R.string.black);
- ---getResources().getColor(R.string.black);
4.定义尺寸(dimens.xml)
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <dimen name="height">80dip</dimen>
- </resources>
- ---getResource().getDimension(R.string.height);
5.定义样式(styles.xml)
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <style name="sharpText">
- <item name="android:textSize">18sp</item>
- <item name="android:textColor">#000000</item>
- </style>
- </resources>
Android开发中string.xml文件的使用的更多相关文章
- Android开发之获取xml文件的输入流对象
介绍两种Android开发中获取xml文件的输入流对象 第一种:通过assets目录获取 1.首先是在Project下app/src/main目录下创建一个assets文件夹,将需要获取的xml文件放 ...
- Android中string.xml文件中设置部分字体颜色大小
1.在string.xml文件中: <string name="tips_all"><Data><![CDATA[清理进程:<font colo ...
- Android之获取string.xml文件里面的方法
获取string.xml文件里面的方法 在此做个笔记: 1.在AndroidManifest.xml与layout等xml文件里: android:text="@string/resourc ...
- 关于android开发添加菜单XML文件之后无法在R.java中生成ID的问题
因为和同学分开做的android软件,现在想整合他做的界面部分,于是拷贝了res和src文件夹的文件,其中包括一个res.menu文件夹中的XML.但是每次将该文件导入到工程总无法自动在R.java中 ...
- Android开发,布局xml文件命名注意事项——不能包含任何大写字母
转自:http://blog.sina.com.cn/s/blog_628b45090100zuit.html 在开发Android应用时,会接触到布局文件,一般在 工程名/res/layout/*. ...
- 安卓程序代写 网上程序代写[原]Android项目中string.xml占位符
开发中经常遇到这样的情况 , 在string.xml中用到以下占位符 <string name="delete_success">删除<xliff:g id=&q ...
- android开发 解析服务器端xml文件数据存储到android客户端SQLite数据库
以下面xml文件为例对其解析(假设此xml就在服务器端Server项目下的servlet包下的MenuServlet文件的输出流中): <?xml version="1.0" ...
- Android studio中修改xml文件无效问题
昨天遇到的这个问题,在修改布局xml文件后保存,但运行时布局却并没有被修改,也就是说我的修改无效,今天参照了这篇文章中的方法终于解决了: https://blog.csdn.net/l_o_s/art ...
- eclipse android开发,文本编辑xml文件,给控件添加ID后,R.java,不自动的问题。
直接编辑xml文件给控件添加id,不自动更新.原来的id写法:@id/et_tel 然后改写成这样:@+id/et_tel 然后就好了!操`1
随机推荐
- 在linux下编译运行C++程序
头一回...把windows下的程序挪到linux下,代码见这篇随笔 1.编译ZTHREAD,使用./configure失败,直接编译的,方法还是上面提到的那篇随笔 2.编译源码,最开始用的cc,后来 ...
- MySQL5.7的配置文件
5.7 /etc/mysql/mysql.conf.d/mysqld.cnf 5.6 /etc/my.cnf 或 /etc/mysql/my.cnf
- 如何设置python的编码格式为utf-8
重装了系统(ubuntu 14.04)原来正常可用的OpenERP项目在切换到开发者模式的时候报错: UnicodeDecodeError: 'ascii' codec can't decode by ...
- Python Excel 导入导出【转】
一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 import x ...
- Unix系统编程(一)
主要内容:文件输入/输出的系统调用. 在Linux中,万事万物皆文件. 文件描述符的概念 通用I/O模型的系统调用: 打开文件 open 关闭文件 close 向文件写数据 write 从文件读数据 ...
- 缓存数据库redis、memcached。 MongoDB 资源集锦
Redis学习资源: 1.Redis学习手册 http://www.cnblogs.com/stephen-liu74/archive/2012/03/14/2349815.html 2.c#连接Re ...
- javascript不同类型数据之间的运算是如何转换的
js中不同类型的基础数据之间可以转换,这种转换是有规则可寻的,并非随意的随机的.在js中有5种基础类型数据:string.number.boolean.null.undefined,其中,常用于计算或 ...
- 基于quick-cocos2d-x的LuaSocket范例
这是一个 luasocket 范例. 为了便于使用,我封装了 luasocket 到 cc.net.SocketTCP 类中.这个范例展示如何使用 cc.net.SocketTCP . 同时,在本范例 ...
- sign-up 签约注册
sign-up 搜索网络['sin,ʌp] n. 注册; 签约;
- 嵌入式驱动开发之spi---spi串口通信调试
一. 概念 SPI是 Serial Peripheral Interface(串型外部接口)的缩写.SPI接口有4根PIN脚,分别是: * SPICLK : 用于传输数据的同 ...